Shader "Lch/FromShaderGraph/VegetationSSS_Graph"
{
    Properties
    {
        [NoScaleOffset]_BaseMap("BaseMap", 2D) = "white" {}
        [Normal][NoScaleOffset]_NormalMap("NormalMap", 2D) = "bump" {}
        _NormalStrength("NormalStrength", Float) = 1
        [NoScaleOffset]_MaskMap("MaskMap", 2D) = "white" {}
        _Smoothness("Smoothness", Range(0,1)) = 1
        _Vertex_Color_AO("Vertex Color AO", Range(0, 1)) = 0
        [Toggle(_ENABLE_SSS)]_ENABLE_SSS("Enable", Float) = 0
        [NoScaleOffset]_ScatteringColor("ScatteringColor", 2D) = "white" {}
        _ScatteringIntensity("ScatteringIntensity", Range(0, 3)) = 1
        _FresnelDamping("FresnelDamping", Range(0, 1)) = 0
        _Direction("Direction", Vector) = (1, 0, 0, 0)
        _Speed("Speed", Float) = 1
        _Amplitude("Amplitude", Float) = 1
        [HideInInspector]_QueueOffset("_QueueOffset", Float) = 0
        [HideInInspector]_QueueControl("_QueueControl", Float) = -1
        [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
        [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
        [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
    }
    SubShader
    {
        Tags
        {
            "RenderPipeline"="UniversalPipeline"
            "RenderType"="Opaque"
            "UniversalMaterialType" = "Lit"
            "Queue"="AlphaTest"
            "DisableBatching"="LODFading"
            "ShaderGraphShader"="true"
            "ShaderGraphTargetId"="UniversalLitSubTarget"
        }
        Pass
        {
            Name "Universal Forward"
            Tags
            {
                "LightMode" = "UniversalForward"
            }
        
        // Render State
        Cull Off
        Blend One Zero
        ZTest LEqual
        ZWrite On
        AlphaToMask On
        
        // Debug
        // <None>
        
        // --------------------------------------------------
        // Pass
        
        HLSLPROGRAM
        
        // Pragmas
        #pragma target 2.0
        #pragma multi_compile_instancing
        #pragma multi_compile_fog
        #pragma instancing_options renderinglayer
        #pragma vertex vert
        #pragma fragment frag
        
        // Keywords
 
        #pragma multi_compile _ LIGHTMAP_ON
 
 
        #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE  
        //#pragma multi_compile   _ADDITIONAL_LIGHTS_VERTEX  
 
 
 
        #pragma multi_compile_fragment   _SHADOWS_SOFT  
        #pragma multi_compile   SHADOWS_SHADOWMASK
 
        #pragma multi_compile   _LIGHT_LAYERS
        //#pragma multi_compile_fragment _ DEBUG_DISPLAY
 
        #pragma multi_compile _ _FORWARD_PLUS
        #pragma multi_compile   EVALUATE_SH_VERTEX
        //#pragma multi_compile _ LOD_FADE_CROSSFADE
        #pragma shader_feature_local _ _ENABLE_SSS
        
        #if defined(_ENABLE_SSS)
            #define KEYWORD_PERMUTATION_0
        #else
            #define KEYWORD_PERMUTATION_1
        #endif
        
        
        // Defines
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMALMAP 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMAL_DROPOFF_TS 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_NORMAL
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TANGENT
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD0
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD2
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_COLOR
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_POSITION_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_NORMAL_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TANGENT_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TEXCOORD0
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_COLOR
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_SHADOW_COORD
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_CULLFACE
        #endif
        
        #define FEATURES_GRAPH_VERTEX
        /* WARNING: $splice Could not find named fragment 'PassInstancing' */
        #define SHADERPASS SHADERPASS_FORWARD
        #define _FOG_FRAGMENT 1
        #define _ALPHATEST_ON 1
        #define USE_UNITY_CROSSFADE 1
        
        
        // custom interpolator pre-include
        /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
        
        // Includes
        //#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
        //#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
        //#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
        
        // --------------------------------------------------
        // Structs and Packing
        
        // custom interpolators pre packing
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
        
        struct Attributes
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionOS : POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalOS : NORMAL;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentOS : TANGENT;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0 : TEXCOORD0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv1 : TEXCOORD1;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv2 : TEXCOORD2;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color : COLOR;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : INSTANCEID_SEMANTIC;
            #endif
            #endif
        };
        struct Varyings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color;
            #endif
            #if defined(LIGHTMAP_ON)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float2 staticLightmapUV;
            #endif
            #endif
            #if defined(DYNAMICLIGHTMAP_ON)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float2 dynamicLightmapUV;
            #endif
            #endif
            #if !defined(LIGHTMAP_ON)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 sh;
            #endif
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 fogFactorAndVertexLight;
            #endif
            #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 shadowCoord;
            #endif
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        struct SurfaceDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 TangentSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceBiTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceViewDirection;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpacePosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float2 NDCPosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float2 PixelPosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 VertexColor;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float FaceSign;
            #endif
        };
        struct VertexDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpacePosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 VertexColor;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 TimeParameters;
            #endif
        };
        struct PackedVaryings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(LIGHTMAP_ON)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float2 staticLightmapUV : INTERP0;
            #endif
            #endif
            #if defined(DYNAMICLIGHTMAP_ON)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float2 dynamicLightmapUV : INTERP1;
            #endif
            #endif
            #if !defined(LIGHTMAP_ON)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 sh : INTERP2;
            #endif
            #endif
            #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 shadowCoord : INTERP3;
            #endif
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentWS : INTERP4;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0 : INTERP5;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color : INTERP6;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 fogFactorAndVertexLight : INTERP7;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionWS : INTERP8;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalWS : INTERP9;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        PackedVaryings PackVaryings (Varyings input)
        {
            PackedVaryings output;
            ZERO_INITIALIZE(PackedVaryings, output);
            output.positionCS = input.positionCS;
            #if defined(LIGHTMAP_ON)
            output.staticLightmapUV = input.staticLightmapUV;
            #endif
            #if defined(DYNAMICLIGHTMAP_ON)
            output.dynamicLightmapUV = input.dynamicLightmapUV;
            #endif
            #if !defined(LIGHTMAP_ON)
            output.sh = input.sh;
            #endif
            #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
            output.shadowCoord = input.shadowCoord;
            #endif
            output.tangentWS.xyzw = input.tangentWS;
            output.texCoord0.xyzw = input.texCoord0;
            output.color.xyzw = input.color;
            output.fogFactorAndVertexLight.xyzw = input.fogFactorAndVertexLight;
            output.positionWS.xyz = input.positionWS;
            output.normalWS.xyz = input.normalWS;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        
        Varyings UnpackVaryings (PackedVaryings input)
        {
            Varyings output;
            output.positionCS = input.positionCS;
            #if defined(LIGHTMAP_ON)
            output.staticLightmapUV = input.staticLightmapUV;
            #endif
            #if defined(DYNAMICLIGHTMAP_ON)
            output.dynamicLightmapUV = input.dynamicLightmapUV;
            #endif
            #if !defined(LIGHTMAP_ON)
            output.sh = input.sh;
            #endif
            #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
            output.shadowCoord = input.shadowCoord;
            #endif
            output.tangentWS = input.tangentWS.xyzw;
            output.texCoord0 = input.texCoord0.xyzw;
            output.color = input.color.xyzw;
            output.fogFactorAndVertexLight = input.fogFactorAndVertexLight.xyzw;
            output.positionWS = input.positionWS.xyz;
            output.normalWS = input.normalWS.xyz;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        #endif
        
        // --------------------------------------------------
        // Graph
        
        // Graph Properties
        CBUFFER_START(UnityPerMaterial)
        float4 _BaseMap_TexelSize;
        float4 _NormalMap_TexelSize;
        float4 _MaskMap_TexelSize;
        float4 _ScatteringColor_TexelSize;
        float _ScatteringIntensity;
        float _FresnelDamping;
        float2 _Direction;
        float _Speed;
        float _Amplitude;
        float _Vertex_Color_AO;
        float _Smoothness;
        float _NormalStrength;
        CBUFFER_END
        
        
        // Object and Global properties
        SAMPLER(SamplerState_Linear_Repeat);
        TEXTURE2D(_BaseMap);
        SAMPLER(sampler_BaseMap);
        TEXTURE2D(_NormalMap);
        SAMPLER(sampler_NormalMap);
        TEXTURE2D(_MaskMap);
        SAMPLER(sampler_MaskMap);
        TEXTURE2D(_ScatteringColor);
        SAMPLER(sampler_ScatteringColor);
        
        // Graph Includes
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Hashes.hlsl"
        #include "CustomFunctionNodes.hlsl"
        
        // -- Property used by ScenePickingPass
        #ifdef SCENEPICKINGPASS
        float4 _SelectionID;
        #endif
        
        // -- Properties used by SceneSelectionPass
        #ifdef SCENESELECTIONPASS
        int _ObjectId;
        int _PassValue;
        #endif
        
        // Graph Functions
        
        float2 Unity_GradientNoise_Deterministic_Dir_float(float2 p)
        {
            float x; Hash_Tchou_2_1_float(p, x);
            return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
        }
        
        void Unity_GradientNoise_Deterministic_float (float2 UV, float3 Scale, out float Out)
        {
            float2 p = UV * Scale.xy;
            float2 ip = floor(p);
            float2 fp = frac(p);
            float d00 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip), fp);
            float d01 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(0, 1)), fp - float2(0, 1));
            float d10 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 0)), fp - float2(1, 0));
            float d11 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 1)), fp - float2(1, 1));
            fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
            Out = lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x) + 0.5;
        }
        
        void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Multiply_float2_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A * B;
        }
        
        void Unity_Multiply_float_float(float A, float B, out float Out)
        {
            Out = A * B;
        }
        
        void Unity_Saturate_float(float In, out float Out)
        {
            Out = saturate(In);
        }
        
        void Unity_OneMinus_float(float In, out float Out)
        {
            Out = 1 - In;
        }
        
        void Unity_Length_float3(float3 In, out float Out)
        {
            Out = length(In);
        }
        
        void Unity_Add_float(float A, float B, out float Out)
        {
            Out = A + B;
        }
        
        void Unity_Subtract_float(float A, float B, out float Out)
        {
            Out = A - B;
        }
        
        void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
        {
            RGBA = float4(R, G, B, A);
            RGB = float3(R, G, B);
            RG = float2(R, G);
        }
        
        void Unity_Add_float3(float3 A, float3 B, out float3 Out)
        {
            Out = A + B;
        }
        
        void Unity_Normalize_float3(float3 In, out float3 Out)
        {
            Out = normalize(In);
        }
        
        void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out)
        {
        Out = A * B;
        }
        
        void Unity_DotProduct_float4(float4 A, float4 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void MagicFunction04_float(float PhaseOffset, float Mask, out float Output1, out float Output2){
        Output2 = PhaseOffset * 3.3;
        Output1 = (PhaseOffset * 1.2) + Output2 + Mask;
        }
        
        void Unity_DotProduct_float3(float3 A, float3 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void Unity_Add_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A + B;
        }
        
        void MagicFunction01_float(float2 Input, float LeafSpeed, float LeafFrequency, out float4 Output){
        Output = Input.xxyy * half4(1.975, 0.693, 0.375, 0.193) * 2 - 1;
        Output = Output * LeafSpeed * LeafFrequency;
        }
        
        void Unity_Add_float4(float4 A, float4 B, out float4 Out)
        {
            Out = A + B;
        }
        
        void Unity_Fraction_float4(float4 In, out float4 Out)
        {
            Out = frac(In);
        }
        
        void Unity_Remap_float4(float4 In, float2 InMinMax, float2 OutMinMax, out float4 Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Absolute_float4(float4 In, out float4 Out)
        {
            Out = abs(In);
        }
        
        struct Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float
        {
        };
        
        void SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(half4 Vector4_DF96E5E4, Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float IN, out float4 Output_0)
        {
        half4 _Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4 = Vector4_DF96E5E4;
        float4 _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4;
        Unity_Add_float4(_Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4, float4(0.5, 0.5, 0.5, 0.5), _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4);
        float4 _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4;
        Unity_Fraction_float4(_Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4, _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4);
        float4 _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4;
        Unity_Remap_float4(_Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4, float2 (0, 1), float2 (-1, 1), _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4);
        float4 _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        Unity_Absolute_float4(_Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4, _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4);
        Output_0 = _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        }
        
        struct Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float
        {
        };
        
        void SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(float Vector1_819C55C2, Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float IN, out float Output_1)
        {
        float _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float = Vector1_819C55C2;
        float _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float;
        Unity_Multiply_float_float(_Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float);
        float _Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float = float(3);
        float _Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float = float(2);
        float _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float;
        Unity_Multiply_float_float(_Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float);
        float _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float;
        Unity_Subtract_float(_Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float);
        float _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float, _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float);
        Output_1 = _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        }
        
        struct Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float
        {
        };
        
        void SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(float4 Vector4_68DFF216, Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float IN, out float4 Output_1)
        {
        float4 _Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4 = Vector4_68DFF216;
        Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb;
        float4 _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4;
        SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(_Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4);
        float _Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[0];
        float _Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[1];
        float _Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[2];
        float _Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[3];
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70;
        float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_1cbb2487f417c6868e9090b831565b47;
        float _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_5b215a667cfd2289bd51de570f828029;
        float _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae;
        float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float);
        float4 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4;
        float3 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3;
        float2 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2;
        Unity_Combine_float(_SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2);
        float4 _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        Unity_Remap_float4(_Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, float2 (0, 1), float2 (-0.5, 0.5), _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4);
        Output_1 = _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        }
        
        void MagicFunction02_float(float4 Input, out float3 Output){
        half2 a = Input.xz + Input.yw;
        Output = a.xyx;
        }
        
        void MagicFunction03_float(float3 Input, float LeafAmplitude, float LeafStiffness, float BranchAmplitude, float BranchStiffness, out float3 Output){
        half a = LeafAmplitude * LeafStiffness;
        half b = (1 - BranchStiffness) * BranchAmplitude;
        Output = half3(Input.x * a, b, Input.z * a);
        }
        
        struct Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float
        {
        float3 WorldSpaceNormal;
        float3 ObjectSpacePosition;
        float3 TimeParameters;
        };
        
        void SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half Vector1_F62CD300, float2 Vector2_445EBE29, half Vector1_3A36DA35, float Vector1_665407A7, half Vector1_71D12A3, half Vector1_74A19DBC, float Vector1_A1F46A31, float Vector1_1EF6B9C0, half Vector1_8825368F, Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float IN, out float3 Position_1)
        {
        float _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float;
        Unity_Length_float3(IN.ObjectSpacePosition, _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float);
        float3 _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3;
        _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3 = TransformObjectToWorld(IN.ObjectSpacePosition.xyz);
        float _Split_bb699580548be9859133ec0256572b7a_R_1_Float = IN.ObjectSpacePosition[0];
        float _Split_bb699580548be9859133ec0256572b7a_G_2_Float = IN.ObjectSpacePosition[1];
        float _Split_bb699580548be9859133ec0256572b7a_B_3_Float = IN.ObjectSpacePosition[2];
        float _Split_bb699580548be9859133ec0256572b7a_A_4_Float = 0;
        half _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float = Vector1_F62CD300;
        float _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float;
        Unity_Multiply_float_float(_Split_bb699580548be9859133ec0256572b7a_G_2_Float, _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float, _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float);
        float _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float;
        Unity_Add_float(_Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float, float(1), _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float);
        float _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float;
        Unity_Multiply_float_float(_Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float);
        float _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float);
        float _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float;
        Unity_Subtract_float(_Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float);
        float2 _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2 = Vector2_445EBE29;
        float2 _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2;
        Unity_Multiply_float2_float2((_Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float.xx), _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2, _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2);
        float _Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[0];
        float _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[1];
        float _Split_9e3462f5f0bbc383a084540e52efb606_B_3_Float = 0;
        float _Split_9e3462f5f0bbc383a084540e52efb606_A_4_Float = 0;
        float4 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4;
        float3 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3;
        float2 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2;
        Unity_Combine_float(_Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float, float(0), _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float, float(0), _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2);
        float3 _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3;
        Unity_Add_float3(_Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3);
        float3 _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3;
        _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3 = TransformWorldToObject(_Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3.xyz);
        float3 _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3;
        Unity_Normalize_float3(_Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3, _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3);
        float3 _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3;
        Unity_Multiply_float3_float3((_Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float.xxx), _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3, _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3);
        #if defined(_STATIC_SHADER)
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = float(0);
        #else
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = IN.TimeParameters.x;
        #endif
        half _Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float = Vector1_8825368F;
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M0_1_Vector4 = UNITY_MATRIX_M[0];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4 = UNITY_MATRIX_M[1];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M2_3_Vector4 = UNITY_MATRIX_M[2];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M3_4_Vector4 = UNITY_MATRIX_M[3];
        float _Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float = float(1);
        float _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float;
        Unity_DotProduct_float4(_MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4, (_Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float.xxxx), _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float);
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float;
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float;
        MagicFunction04_float(_Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float, _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float);
        float _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float;
        Unity_DotProduct_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, (_MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float.xxx), _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float);
        float4 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4;
        float3 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3;
        float2 _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2;
        Unity_Combine_float(_DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float, float(0), float(0), _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4, _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3, _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2);
        float2 _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2;
        Unity_Add_float2((_Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float.xx), _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2, _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2);
        half _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float = Vector1_3A36DA35;
        half _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float = Vector1_71D12A3;
        float4 _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4;
        MagicFunction01_float(_Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2, _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float, _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float, _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4);
        Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5;
        float4 _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4;
        SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(_MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4);
        float3 _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3;
        MagicFunction02_float(_SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4, _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3);
        half _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float = Vector1_74A19DBC;
        float _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float = Vector1_665407A7;
        float _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float = Vector1_1EF6B9C0;
        float _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float = Vector1_A1F46A31;
        float3 _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3;
        MagicFunction03_float(IN.WorldSpaceNormal, _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float, _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float, _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float, _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3);
        float3 _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3;
        Unity_Multiply_float3_float3(_MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3);
        float3 _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        Unity_Add_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3, _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3);
        Position_1 = _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        }
        
        void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out)
        {
            Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength)));
        }
        
        void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out)
        {
            Out = Predicate ? True : False;
        }
        
        void Unity_Lerp_float(float A, float B, float T, out float Out)
        {
            Out = lerp(A, B, T);
        }
        
        void Unity_FresnelEffect_float(float3 Normal, float3 ViewDir, float Power, out float Out)
        {
            Out = pow((1.0 - saturate(dot(normalize(Normal), normalize(ViewDir)))), Power);
        }
        
        // Custom interpolators pre vertex
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
        
        // Graph Vertex
        struct VertexDescription
        {
            float3 Position;
            float3 Normal;
            float3 Tangent;
        };
        
        VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
        {
            VertexDescription description = (VertexDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Vector2_be042102856745459ca75791c8997837_Out_0_Vector2 = float2(float(0.1), float(0));
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float;
            Unity_GradientNoise_Deterministic_float((IN.TimeParameters.x.xx), float(0.2), _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float;
            Unity_Remap_float(_GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float, float2 (0, 1), float2 (0.3, 1), _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2;
            Unity_Multiply_float2_float2(_Vector2_be042102856745459ca75791c8997837_Out_0_Vector2, (_Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float.xx), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float = IN.VertexColor[0];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float = IN.VertexColor[1];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float = IN.VertexColor[2];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_A_4_Float = IN.VertexColor[3];
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float;
            Unity_Multiply_float_float(_Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float, 0.5, _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float;
            Unity_Saturate_float(_Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float, _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float;
            Unity_OneMinus_float(_Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float, _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.WorldSpaceNormal = IN.WorldSpaceNormal;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.ObjectSpacePosition = IN.ObjectSpacePosition;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.TimeParameters = IN.TimeParameters;
            float3 _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half(0.05), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2, half(0.5), _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float, half(0.5), half(0.1), _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float, float(0.1), _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3);
            #endif
            description.Position = _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            description.Normal = IN.ObjectSpaceNormal;
            description.Tangent = IN.ObjectSpaceTangent;
            return description;
        }
        
        // Custom interpolators, pre surface
        #ifdef FEATURES_GRAPH_VERTEX
        Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
        {
        return output;
        }
        #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
        #endif
        
        // Graph Pixel
        struct SurfaceDescription
        {
            float3 BaseColor;
            float3 NormalTS;
            float3 Emission;
            float Metallic;
            float Smoothness;
            float Occlusion;
            float Alpha;
            float AlphaClipThreshold;
        };
        
        SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
        {
            SurfaceDescription surface = (SurfaceDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_BaseMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.tex, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.samplerstate, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_R_4_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.r;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_G_5_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.g;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_B_6_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.b;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _IsFrontFace_a7358c783778400db0359723f12a3a85_Out_0_Boolean = max(0, IN.FaceSign.x);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_NormalMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.tex, _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.samplerstate, _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.rgb = UnpackNormal(_SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4);
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_R_4_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.r;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_G_5_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.g;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_B_6_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.b;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_A_7_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_903342e174b34297903a3355b6b6ca13_Out_0_Float = _NormalStrength;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3;
            Unity_NormalStrength_float((_SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.xyz), _Property_903342e174b34297903a3355b6b6ca13_Out_0_Float, _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Float_4d4aa49678964e3fba9145b8c09543bd_Out_0_Float = float(-1);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3;
            Unity_Multiply_float3_float3(_NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3, (_Float_4d4aa49678964e3fba9145b8c09543bd_Out_0_Float.xxx), _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3;
            Unity_Branch_float3(_IsFrontFace_a7358c783778400db0359723f12a3a85_Out_0_Boolean, _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3, _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3, _Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_4f3471b6a8d041ebadb5c5296183d050_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_MaskMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_4f3471b6a8d041ebadb5c5296183d050_Out_0_Texture2D.tex, _Property_4f3471b6a8d041ebadb5c5296183d050_Out_0_Texture2D.samplerstate, _Property_4f3471b6a8d041ebadb5c5296183d050_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_914b9b0db3524122b31560b5247ea950_R_4_Float = _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4.r;
            float _SampleTexture2D_914b9b0db3524122b31560b5247ea950_G_5_Float = _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4.g;
            float _SampleTexture2D_914b9b0db3524122b31560b5247ea950_B_6_Float = _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4.b;
            float _SampleTexture2D_914b9b0db3524122b31560b5247ea950_A_7_Float = _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Split_a7c4ef0820984513b5564dd5f308bf55_R_1_Float = IN.VertexColor[0];
            float _Split_a7c4ef0820984513b5564dd5f308bf55_G_2_Float = IN.VertexColor[1];
            float _Split_a7c4ef0820984513b5564dd5f308bf55_B_3_Float = IN.VertexColor[2];
            float _Split_a7c4ef0820984513b5564dd5f308bf55_A_4_Float = IN.VertexColor[3];
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_f109f19d070b4f1e95dc29f5a0b29c98_Out_0_Float = _Vertex_Color_AO;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Lerp_c84b44c1d9094ee68de1cb96888eaa2b_Out_3_Float;
            Unity_Lerp_float(float(1), _Split_a7c4ef0820984513b5564dd5f308bf55_G_2_Float, _Property_f109f19d070b4f1e95dc29f5a0b29c98_Out_0_Float, _Lerp_c84b44c1d9094ee68de1cb96888eaa2b_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Multiply_b7fb8f4fd709415a9c525e5287978860_Out_2_Float;
            Unity_Multiply_float_float(_SampleTexture2D_914b9b0db3524122b31560b5247ea950_G_5_Float, _Lerp_c84b44c1d9094ee68de1cb96888eaa2b_Out_3_Float, _Multiply_b7fb8f4fd709415a9c525e5287978860_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Transform_86a03b8e2d6540c1b8863f7b5b554b87_Out_1_Vector3;
            {
                float3x3 tangentTransform = float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal);
                _Transform_86a03b8e2d6540c1b8863f7b5b554b87_Out_1_Vector3 = TransformTangentToWorldDir(_Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3.xyz, tangentTransform, true).xyz;
            }
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _ScreenPosition_1bec0e7bef684b978e4c695ef103537b_Out_0_Vector4 = float4(IN.NDCPosition.xy, 0, 0);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _AdditionalLightSSSCustomFunction_f6523040cd4b400bb171bfed1c9c9fd1_contribution_2_Vector3;
            AdditionalLightSSS_float(IN.WorldSpacePosition, _Transform_86a03b8e2d6540c1b8863f7b5b554b87_Out_1_Vector3, (_ScreenPosition_1bec0e7bef684b978e4c695ef103537b_Out_0_Vector4.xy), _AdditionalLightSSSCustomFunction_f6523040cd4b400bb171bfed1c9c9fd1_contribution_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_729fe0dfa5fa48569eff06acab799419_Out_0_Float = _ScatteringIntensity;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_10a0a2f10cdd43cab2a2b532380b8392_Out_2_Vector3;
            Unity_Multiply_float3_float3(_AdditionalLightSSSCustomFunction_f6523040cd4b400bb171bfed1c9c9fd1_contribution_2_Vector3, (_Property_729fe0dfa5fa48569eff06acab799419_Out_0_Float.xxx), _Multiply_10a0a2f10cdd43cab2a2b532380b8392_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_9c68aff5f79c4b13a3bb636c224ea02d_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_ScatteringColor);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_9c68aff5f79c4b13a3bb636c224ea02d_Out_0_Texture2D.tex, _Property_9c68aff5f79c4b13a3bb636c224ea02d_Out_0_Texture2D.samplerstate, _Property_9c68aff5f79c4b13a3bb636c224ea02d_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_R_4_Float = _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.r;
            float _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_G_5_Float = _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.g;
            float _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_B_6_Float = _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.b;
            float _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_A_7_Float = _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_bd72fc18d17f4d119db6f81048c2e6f2_Out_2_Vector3;
            Unity_Multiply_float3_float3(_Multiply_10a0a2f10cdd43cab2a2b532380b8392_Out_2_Vector3, (_SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.xyz), _Multiply_bd72fc18d17f4d119db6f81048c2e6f2_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _FresnelEffect_28ba1d3f0a7a42abbafc20bf115c122b_Out_3_Float;
            Unity_FresnelEffect_float(IN.WorldSpaceNormal, IN.WorldSpaceViewDirection, float(1), _FresnelEffect_28ba1d3f0a7a42abbafc20bf115c122b_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_dd0713d20f934f159c516efcae79d105_Out_0_Float = _FresnelDamping;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Lerp_a91fb6c34617438bb75e8b1c4bb48740_Out_3_Float;
            Unity_Lerp_float(float(1), _FresnelEffect_28ba1d3f0a7a42abbafc20bf115c122b_Out_3_Float, _Property_dd0713d20f934f159c516efcae79d105_Out_0_Float, _Lerp_a91fb6c34617438bb75e8b1c4bb48740_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_83b4203720a847dd8b6d5cab010f4340_Out_2_Vector3;
            Unity_Multiply_float3_float3(_Multiply_bd72fc18d17f4d119db6f81048c2e6f2_Out_2_Vector3, (_Lerp_a91fb6c34617438bb75e8b1c4bb48740_Out_3_Float.xxx), _Multiply_83b4203720a847dd8b6d5cab010f4340_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            #if defined(_ENABLE_SSS)
            float3 _Enable_af8cad7a16854088827adcb44e00760b_Out_0_Vector3 = _Multiply_83b4203720a847dd8b6d5cab010f4340_Out_2_Vector3;
            #else
            float3 _Enable_af8cad7a16854088827adcb44e00760b_Out_0_Vector3 = float3(0, 0, 0);
            #endif
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_fdce91d2e90547b3aa6f3da87c21d7ef_Out_2_Vector3;
            Unity_Multiply_float3_float3((_Multiply_b7fb8f4fd709415a9c525e5287978860_Out_2_Float.xxx), _Enable_af8cad7a16854088827adcb44e00760b_Out_0_Vector3, _Multiply_fdce91d2e90547b3aa6f3da87c21d7ef_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_375ee4689d2c4f3a8173e773fb36e853_Out_0_Float = _Smoothness;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Multiply_460cfd1a2c414227b4f240c421293f99_Out_2_Float;
            Unity_Multiply_float_float(_Property_375ee4689d2c4f3a8173e773fb36e853_Out_0_Float, _SampleTexture2D_914b9b0db3524122b31560b5247ea950_R_4_Float, _Multiply_460cfd1a2c414227b4f240c421293f99_Out_2_Float);
            #endif
            surface.BaseColor = (_SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.xyz);
            surface.NormalTS = _Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3;
            surface.Emission = _Multiply_fdce91d2e90547b3aa6f3da87c21d7ef_Out_2_Vector3;
            surface.Metallic = float(0);
            surface.Smoothness = _Multiply_460cfd1a2c414227b4f240c421293f99_Out_2_Float;
            surface.Occlusion = _Multiply_b7fb8f4fd709415a9c525e5287978860_Out_2_Float;
            surface.Alpha = _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float;
            surface.AlphaClipThreshold = float(0.5);
            return surface;
        }
        
        // --------------------------------------------------
        // Build Graph Inputs
        #ifdef HAVE_VFX_MODIFICATION
        #define VFX_SRP_ATTRIBUTES Attributes
        #define VFX_SRP_VARYINGS Varyings
        #define VFX_SRP_SURFACE_INPUTS SurfaceDescriptionInputs
        #endif
        VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
        {
            VertexDescriptionInputs output;
            ZERO_INITIALIZE(VertexDescriptionInputs, output);
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceNormal =                          input.normalOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceTangent =                         input.tangentOS.xyz;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpacePosition =                        input.positionOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.VertexColor =                                input.color;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.TimeParameters =                             _TimeParameters.xyz;
        #endif
        
        
            return output;
        }
        SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
        {
            SurfaceDescriptionInputs output;
            ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
        
        #ifdef HAVE_VFX_MODIFICATION
        #if VFX_USE_GRAPH_VALUES
            uint instanceActiveIndex = asuint(UNITY_ACCESS_INSTANCED_PROP(PerInstance, _InstanceActiveIndex));
            /* WARNING: $splice Could not find named fragment 'VFXLoadGraphValues' */
        #endif
            /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */
        
        #endif
        
            
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // must use interpolated tangent, bitangent and normal before they are normalized in the pixel shader.
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        float3 unnormalizedNormalWS = input.normalWS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        const float renormFactor = 1.0 / length(unnormalizedNormalWS);
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // use bitangent on the fly like in hdrp
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // IMPORTANT! If we ever support Flip on double sided materials ensure bitangent and tangent are NOT flipped.
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        float crossSign = (input.tangentWS.w > 0.0 ? 1.0 : -1.0)* GetOddNegativeScale();
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        float3 bitang = crossSign * cross(input.normalWS.xyz, input.tangentWS.xyz);
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceNormal = renormFactor * input.normalWS.xyz;      // we want a unit length Normal Vector node in shader graph
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f);
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // to pr               eserve mikktspace compliance we use same scale renormFactor as was used on the normal.
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // This                is explained in section 2.2 in "surface gradient based bump mapping framework"
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceTangent = renormFactor * input.tangentWS.xyz;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceBiTangent = renormFactor * bitang;
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceViewDirection = GetWorldSpaceNormalizeViewDir(input.positionWS);
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpacePosition = input.positionWS;
        #endif
        
        
            #if UNITY_UV_STARTS_AT_TOP
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.PixelPosition = float2(input.positionCS.x, (_ProjectionParams.x < 0) ? (_ScaledScreenParams.y - input.positionCS.y) : input.positionCS.y);
        #endif
        
            #else
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.PixelPosition = float2(input.positionCS.x, (_ProjectionParams.x > 0) ? (_ScaledScreenParams.y - input.positionCS.y) : input.positionCS.y);
        #endif
        
            #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.NDCPosition = output.PixelPosition.xy / _ScaledScreenParams.xy;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.NDCPosition.y = 1.0f - output.NDCPosition.y;
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.uv0 = input.texCoord0;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.VertexColor = input.color;
        #endif
        
        #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
        #else
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        #endif
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        #endif
        
        #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        
                return output;
        }
        
        // --------------------------------------------------
        // Main
        
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Varyings.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/PBRForwardPass.hlsl"
        
        // --------------------------------------------------
        // Visual Effect Vertex Invocations
        #ifdef HAVE_VFX_MODIFICATION
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/VisualEffectVertex.hlsl"
        #endif
        
        ENDHLSL
        }
         
        Pass
        {
            Name "ShadowCaster"
            Tags
            {
                "LightMode" = "ShadowCaster"
            }
        
        // Render State
        Cull Off
        ZTest LEqual
        ZWrite On
        ColorMask 0
        
        // Debug
        // <None>
        
        // --------------------------------------------------
        // Pass
        
        HLSLPROGRAM
        
        // Pragmas
        #pragma target 2.0
        #pragma multi_compile_instancing
        #pragma vertex vert
        #pragma fragment frag
        
        // Keywords
        #pragma multi_compile_vertex _ _CASTING_PUNCTUAL_LIGHT_SHADOW
  
  
        
        #if defined(_ENABLE_SSS)
            #define KEYWORD_PERMUTATION_0
        #else
            #define KEYWORD_PERMUTATION_1
        #endif
        
        
        // Defines
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMALMAP 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMAL_DROPOFF_TS 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_NORMAL
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TANGENT
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD0
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_COLOR
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_NORMAL_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TEXCOORD0
        #endif
        
        #define FEATURES_GRAPH_VERTEX
        /* WARNING: $splice Could not find named fragment 'PassInstancing' */
        #define SHADERPASS SHADERPASS_SHADOWCASTER
        #define _ALPHATEST_ON 1
        #define USE_UNITY_CROSSFADE 1
        
        
        // custom interpolator pre-include
        /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
        
        // Includes
        //#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
        //#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
        
        // --------------------------------------------------
        // Structs and Packing
        
        // custom interpolators pre packing
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
        
        struct Attributes
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionOS : POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalOS : NORMAL;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentOS : TANGENT;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0 : TEXCOORD0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color : COLOR;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : INSTANCEID_SEMANTIC;
            #endif
            #endif
        };
        struct Varyings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        struct SurfaceDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0;
            #endif
        };
        struct VertexDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpacePosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 VertexColor;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 TimeParameters;
            #endif
        };
        struct PackedVaryings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0 : INTERP0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalWS : INTERP1;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        PackedVaryings PackVaryings (Varyings input)
        {
            PackedVaryings output;
            ZERO_INITIALIZE(PackedVaryings, output);
            output.positionCS = input.positionCS;
            output.texCoord0.xyzw = input.texCoord0;
            output.normalWS.xyz = input.normalWS;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        
        Varyings UnpackVaryings (PackedVaryings input)
        {
            Varyings output;
            output.positionCS = input.positionCS;
            output.texCoord0 = input.texCoord0.xyzw;
            output.normalWS = input.normalWS.xyz;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        #endif
        
        // --------------------------------------------------
        // Graph
        
        // Graph Properties
        CBUFFER_START(UnityPerMaterial)
        float4 _BaseMap_TexelSize;
        float4 _NormalMap_TexelSize;
        float4 _MaskMap_TexelSize;
        float4 _ScatteringColor_TexelSize;
        float _ScatteringIntensity;
        float _FresnelDamping;
        float2 _Direction;
        float _Speed;
        float _Amplitude;
        float _Vertex_Color_AO;
        float _Smoothness;
        float _NormalStrength;
        CBUFFER_END
        
        
        // Object and Global properties
        SAMPLER(SamplerState_Linear_Repeat);
        TEXTURE2D(_BaseMap);
        SAMPLER(sampler_BaseMap);
        TEXTURE2D(_NormalMap);
        SAMPLER(sampler_NormalMap);
        TEXTURE2D(_MaskMap);
        SAMPLER(sampler_MaskMap);
        TEXTURE2D(_ScatteringColor);
        SAMPLER(sampler_ScatteringColor);
        
        // Graph Includes
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Hashes.hlsl"
        
        // -- Property used by ScenePickingPass
        #ifdef SCENEPICKINGPASS
        float4 _SelectionID;
        #endif
        
        // -- Properties used by SceneSelectionPass
        #ifdef SCENESELECTIONPASS
        int _ObjectId;
        int _PassValue;
        #endif
        
        // Graph Functions
        
        float2 Unity_GradientNoise_Deterministic_Dir_float(float2 p)
        {
            float x; Hash_Tchou_2_1_float(p, x);
            return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
        }
        
        void Unity_GradientNoise_Deterministic_float (float2 UV, float3 Scale, out float Out)
        {
            float2 p = UV * Scale.xy;
            float2 ip = floor(p);
            float2 fp = frac(p);
            float d00 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip), fp);
            float d01 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(0, 1)), fp - float2(0, 1));
            float d10 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 0)), fp - float2(1, 0));
            float d11 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 1)), fp - float2(1, 1));
            fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
            Out = lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x) + 0.5;
        }
        
        void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Multiply_float2_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A * B;
        }
        
        void Unity_Multiply_float_float(float A, float B, out float Out)
        {
            Out = A * B;
        }
        
        void Unity_Saturate_float(float In, out float Out)
        {
            Out = saturate(In);
        }
        
        void Unity_OneMinus_float(float In, out float Out)
        {
            Out = 1 - In;
        }
        
        void Unity_Length_float3(float3 In, out float Out)
        {
            Out = length(In);
        }
        
        void Unity_Add_float(float A, float B, out float Out)
        {
            Out = A + B;
        }
        
        void Unity_Subtract_float(float A, float B, out float Out)
        {
            Out = A - B;
        }
        
        void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
        {
            RGBA = float4(R, G, B, A);
            RGB = float3(R, G, B);
            RG = float2(R, G);
        }
        
        void Unity_Add_float3(float3 A, float3 B, out float3 Out)
        {
            Out = A + B;
        }
        
        void Unity_Normalize_float3(float3 In, out float3 Out)
        {
            Out = normalize(In);
        }
        
        void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out)
        {
        Out = A * B;
        }
        
        void Unity_DotProduct_float4(float4 A, float4 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void MagicFunction04_float(float PhaseOffset, float Mask, out float Output1, out float Output2){
        Output2 = PhaseOffset * 3.3;
        Output1 = (PhaseOffset * 1.2) + Output2 + Mask;
        }
        
        void Unity_DotProduct_float3(float3 A, float3 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void Unity_Add_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A + B;
        }
        
        void MagicFunction01_float(float2 Input, float LeafSpeed, float LeafFrequency, out float4 Output){
        Output = Input.xxyy * half4(1.975, 0.693, 0.375, 0.193) * 2 - 1;
        Output = Output * LeafSpeed * LeafFrequency;
        }
        
        void Unity_Add_float4(float4 A, float4 B, out float4 Out)
        {
            Out = A + B;
        }
        
        void Unity_Fraction_float4(float4 In, out float4 Out)
        {
            Out = frac(In);
        }
        
        void Unity_Remap_float4(float4 In, float2 InMinMax, float2 OutMinMax, out float4 Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Absolute_float4(float4 In, out float4 Out)
        {
            Out = abs(In);
        }
        
        struct Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float
        {
        };
        
        void SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(half4 Vector4_DF96E5E4, Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float IN, out float4 Output_0)
        {
        half4 _Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4 = Vector4_DF96E5E4;
        float4 _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4;
        Unity_Add_float4(_Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4, float4(0.5, 0.5, 0.5, 0.5), _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4);
        float4 _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4;
        Unity_Fraction_float4(_Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4, _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4);
        float4 _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4;
        Unity_Remap_float4(_Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4, float2 (0, 1), float2 (-1, 1), _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4);
        float4 _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        Unity_Absolute_float4(_Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4, _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4);
        Output_0 = _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        }
        
        struct Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float
        {
        };
        
        void SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(float Vector1_819C55C2, Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float IN, out float Output_1)
        {
        float _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float = Vector1_819C55C2;
        float _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float;
        Unity_Multiply_float_float(_Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float);
        float _Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float = float(3);
        float _Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float = float(2);
        float _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float;
        Unity_Multiply_float_float(_Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float);
        float _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float;
        Unity_Subtract_float(_Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float);
        float _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float, _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float);
        Output_1 = _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        }
        
        struct Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float
        {
        };
        
        void SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(float4 Vector4_68DFF216, Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float IN, out float4 Output_1)
        {
        float4 _Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4 = Vector4_68DFF216;
        Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb;
        float4 _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4;
        SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(_Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4);
        float _Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[0];
        float _Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[1];
        float _Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[2];
        float _Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[3];
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70;
        float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_1cbb2487f417c6868e9090b831565b47;
        float _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_5b215a667cfd2289bd51de570f828029;
        float _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae;
        float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float);
        float4 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4;
        float3 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3;
        float2 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2;
        Unity_Combine_float(_SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2);
        float4 _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        Unity_Remap_float4(_Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, float2 (0, 1), float2 (-0.5, 0.5), _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4);
        Output_1 = _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        }
        
        void MagicFunction02_float(float4 Input, out float3 Output){
        half2 a = Input.xz + Input.yw;
        Output = a.xyx;
        }
        
        void MagicFunction03_float(float3 Input, float LeafAmplitude, float LeafStiffness, float BranchAmplitude, float BranchStiffness, out float3 Output){
        half a = LeafAmplitude * LeafStiffness;
        half b = (1 - BranchStiffness) * BranchAmplitude;
        Output = half3(Input.x * a, b, Input.z * a);
        }
        
        struct Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float
        {
        float3 WorldSpaceNormal;
        float3 ObjectSpacePosition;
        float3 TimeParameters;
        };
        
        void SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half Vector1_F62CD300, float2 Vector2_445EBE29, half Vector1_3A36DA35, float Vector1_665407A7, half Vector1_71D12A3, half Vector1_74A19DBC, float Vector1_A1F46A31, float Vector1_1EF6B9C0, half Vector1_8825368F, Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float IN, out float3 Position_1)
        {
        float _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float;
        Unity_Length_float3(IN.ObjectSpacePosition, _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float);
        float3 _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3;
        _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3 = TransformObjectToWorld(IN.ObjectSpacePosition.xyz);
        float _Split_bb699580548be9859133ec0256572b7a_R_1_Float = IN.ObjectSpacePosition[0];
        float _Split_bb699580548be9859133ec0256572b7a_G_2_Float = IN.ObjectSpacePosition[1];
        float _Split_bb699580548be9859133ec0256572b7a_B_3_Float = IN.ObjectSpacePosition[2];
        float _Split_bb699580548be9859133ec0256572b7a_A_4_Float = 0;
        half _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float = Vector1_F62CD300;
        float _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float;
        Unity_Multiply_float_float(_Split_bb699580548be9859133ec0256572b7a_G_2_Float, _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float, _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float);
        float _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float;
        Unity_Add_float(_Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float, float(1), _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float);
        float _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float;
        Unity_Multiply_float_float(_Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float);
        float _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float);
        float _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float;
        Unity_Subtract_float(_Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float);
        float2 _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2 = Vector2_445EBE29;
        float2 _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2;
        Unity_Multiply_float2_float2((_Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float.xx), _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2, _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2);
        float _Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[0];
        float _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[1];
        float _Split_9e3462f5f0bbc383a084540e52efb606_B_3_Float = 0;
        float _Split_9e3462f5f0bbc383a084540e52efb606_A_4_Float = 0;
        float4 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4;
        float3 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3;
        float2 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2;
        Unity_Combine_float(_Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float, float(0), _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float, float(0), _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2);
        float3 _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3;
        Unity_Add_float3(_Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3);
        float3 _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3;
        _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3 = TransformWorldToObject(_Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3.xyz);
        float3 _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3;
        Unity_Normalize_float3(_Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3, _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3);
        float3 _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3;
        Unity_Multiply_float3_float3((_Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float.xxx), _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3, _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3);
        #if defined(_STATIC_SHADER)
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = float(0);
        #else
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = IN.TimeParameters.x;
        #endif
        half _Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float = Vector1_8825368F;
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M0_1_Vector4 = UNITY_MATRIX_M[0];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4 = UNITY_MATRIX_M[1];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M2_3_Vector4 = UNITY_MATRIX_M[2];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M3_4_Vector4 = UNITY_MATRIX_M[3];
        float _Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float = float(1);
        float _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float;
        Unity_DotProduct_float4(_MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4, (_Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float.xxxx), _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float);
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float;
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float;
        MagicFunction04_float(_Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float, _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float);
        float _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float;
        Unity_DotProduct_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, (_MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float.xxx), _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float);
        float4 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4;
        float3 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3;
        float2 _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2;
        Unity_Combine_float(_DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float, float(0), float(0), _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4, _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3, _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2);
        float2 _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2;
        Unity_Add_float2((_Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float.xx), _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2, _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2);
        half _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float = Vector1_3A36DA35;
        half _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float = Vector1_71D12A3;
        float4 _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4;
        MagicFunction01_float(_Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2, _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float, _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float, _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4);
        Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5;
        float4 _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4;
        SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(_MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4);
        float3 _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3;
        MagicFunction02_float(_SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4, _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3);
        half _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float = Vector1_74A19DBC;
        float _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float = Vector1_665407A7;
        float _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float = Vector1_1EF6B9C0;
        float _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float = Vector1_A1F46A31;
        float3 _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3;
        MagicFunction03_float(IN.WorldSpaceNormal, _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float, _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float, _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float, _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3);
        float3 _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3;
        Unity_Multiply_float3_float3(_MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3);
        float3 _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        Unity_Add_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3, _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3);
        Position_1 = _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        }
        
        // Custom interpolators pre vertex
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
        
        // Graph Vertex
        struct VertexDescription
        {
            float3 Position;
            float3 Normal;
            float3 Tangent;
        };
        
        VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
        {
            VertexDescription description = (VertexDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Vector2_be042102856745459ca75791c8997837_Out_0_Vector2 = float2(float(0.1), float(0));
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float;
            Unity_GradientNoise_Deterministic_float((IN.TimeParameters.x.xx), float(0.2), _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float;
            Unity_Remap_float(_GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float, float2 (0, 1), float2 (0.3, 1), _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2;
            Unity_Multiply_float2_float2(_Vector2_be042102856745459ca75791c8997837_Out_0_Vector2, (_Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float.xx), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float = IN.VertexColor[0];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float = IN.VertexColor[1];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float = IN.VertexColor[2];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_A_4_Float = IN.VertexColor[3];
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float;
            Unity_Multiply_float_float(_Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float, 0.5, _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float;
            Unity_Saturate_float(_Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float, _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float;
            Unity_OneMinus_float(_Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float, _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.WorldSpaceNormal = IN.WorldSpaceNormal;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.ObjectSpacePosition = IN.ObjectSpacePosition;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.TimeParameters = IN.TimeParameters;
            float3 _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half(0.05), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2, half(0.5), _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float, half(0.5), half(0.1), _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float, float(0.1), _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3);
            #endif
            description.Position = _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            description.Normal = IN.ObjectSpaceNormal;
            description.Tangent = IN.ObjectSpaceTangent;
            return description;
        }
        
        // Custom interpolators, pre surface
        #ifdef FEATURES_GRAPH_VERTEX
        Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
        {
        return output;
        }
        #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
        #endif
        
        // Graph Pixel
        struct SurfaceDescription
        {
            float Alpha;
            float AlphaClipThreshold;
        };
        
        SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
        {
            SurfaceDescription surface = (SurfaceDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_BaseMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.tex, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.samplerstate, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_R_4_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.r;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_G_5_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.g;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_B_6_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.b;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.a;
            #endif
            surface.Alpha = _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float;
            surface.AlphaClipThreshold = float(0.5);
            return surface;
        }
        
        // --------------------------------------------------
        // Build Graph Inputs
        #ifdef HAVE_VFX_MODIFICATION
        #define VFX_SRP_ATTRIBUTES Attributes
        #define VFX_SRP_VARYINGS Varyings
        #define VFX_SRP_SURFACE_INPUTS SurfaceDescriptionInputs
        #endif
        VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
        {
            VertexDescriptionInputs output;
            ZERO_INITIALIZE(VertexDescriptionInputs, output);
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceNormal =                          input.normalOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceTangent =                         input.tangentOS.xyz;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpacePosition =                        input.positionOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.VertexColor =                                input.color;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.TimeParameters =                             _TimeParameters.xyz;
        #endif
        
        
            return output;
        }
        SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
        {
            SurfaceDescriptionInputs output;
            ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
        
        #ifdef HAVE_VFX_MODIFICATION
        #if VFX_USE_GRAPH_VALUES
            uint instanceActiveIndex = asuint(UNITY_ACCESS_INSTANCED_PROP(PerInstance, _InstanceActiveIndex));
            /* WARNING: $splice Could not find named fragment 'VFXLoadGraphValues' */
        #endif
            /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */
        
        #endif
        
            
        
        
        
        
        
        
            #if UNITY_UV_STARTS_AT_TOP
            #else
            #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.uv0 = input.texCoord0;
        #endif
        
        #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
        #else
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        #endif
        #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        
                return output;
        }
        
        // --------------------------------------------------
        // Main
        
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Varyings.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShadowCasterPass.hlsl"
        
        // --------------------------------------------------
        // Visual Effect Vertex Invocations
        #ifdef HAVE_VFX_MODIFICATION
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/VisualEffectVertex.hlsl"
        #endif
        
        ENDHLSL
        }
        Pass
        {
            Name "DepthOnly"
            Tags
            {
                "LightMode" = "DepthOnly"
            }
        
        // Render State
        Cull Off
        ZTest LEqual
        ZWrite On
        ColorMask R
        
        // Debug
        // <None>
        
        // --------------------------------------------------
        // Pass
        
        HLSLPROGRAM
        
        // Pragmas
        #pragma target 2.0
        #pragma multi_compile_instancing
        #pragma vertex vert
        #pragma fragment frag
        
        
 
        
        #if defined(_ENABLE_SSS)
            #define KEYWORD_PERMUTATION_0
        #else
            #define KEYWORD_PERMUTATION_1
        #endif
        
        
        // Defines
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMALMAP 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMAL_DROPOFF_TS 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_NORMAL
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TANGENT
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD0
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_COLOR
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TEXCOORD0
        #endif
        
        #define FEATURES_GRAPH_VERTEX
        /* WARNING: $splice Could not find named fragment 'PassInstancing' */
        #define SHADERPASS SHADERPASS_DEPTHONLY
        #define _ALPHATEST_ON 1
        #define USE_UNITY_CROSSFADE 1
        
        
        // custom interpolator pre-include
        /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
        
        // Includes
        //#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
        //#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
        
        // --------------------------------------------------
        // Structs and Packing
        
        // custom interpolators pre packing
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
        
        struct Attributes
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionOS : POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalOS : NORMAL;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentOS : TANGENT;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0 : TEXCOORD0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color : COLOR;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : INSTANCEID_SEMANTIC;
            #endif
            #endif
        };
        struct Varyings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        struct SurfaceDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0;
            #endif
        };
        struct VertexDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpacePosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 VertexColor;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 TimeParameters;
            #endif
        };
        struct PackedVaryings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0 : INTERP0;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        PackedVaryings PackVaryings (Varyings input)
        {
            PackedVaryings output;
            ZERO_INITIALIZE(PackedVaryings, output);
            output.positionCS = input.positionCS;
            output.texCoord0.xyzw = input.texCoord0;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        
        Varyings UnpackVaryings (PackedVaryings input)
        {
            Varyings output;
            output.positionCS = input.positionCS;
            output.texCoord0 = input.texCoord0.xyzw;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        #endif
        
        // --------------------------------------------------
        // Graph
        
        // Graph Properties
        CBUFFER_START(UnityPerMaterial)
        float4 _BaseMap_TexelSize;
        float4 _NormalMap_TexelSize;
        float4 _MaskMap_TexelSize;
        float4 _ScatteringColor_TexelSize;
        float _ScatteringIntensity;
        float _FresnelDamping;
        float2 _Direction;
        float _Speed;
        float _Amplitude;
        float _Vertex_Color_AO;
        float _Smoothness;
        float _NormalStrength;
        CBUFFER_END
        
        
        // Object and Global properties
        SAMPLER(SamplerState_Linear_Repeat);
        TEXTURE2D(_BaseMap);
        SAMPLER(sampler_BaseMap);
        TEXTURE2D(_NormalMap);
        SAMPLER(sampler_NormalMap);
        TEXTURE2D(_MaskMap);
        SAMPLER(sampler_MaskMap);
        TEXTURE2D(_ScatteringColor);
        SAMPLER(sampler_ScatteringColor);
        
        // Graph Includes
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Hashes.hlsl"
        
        // -- Property used by ScenePickingPass
        #ifdef SCENEPICKINGPASS
        float4 _SelectionID;
        #endif
        
        // -- Properties used by SceneSelectionPass
        #ifdef SCENESELECTIONPASS
        int _ObjectId;
        int _PassValue;
        #endif
        
        // Graph Functions
        
        float2 Unity_GradientNoise_Deterministic_Dir_float(float2 p)
        {
            float x; Hash_Tchou_2_1_float(p, x);
            return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
        }
        
        void Unity_GradientNoise_Deterministic_float (float2 UV, float3 Scale, out float Out)
        {
            float2 p = UV * Scale.xy;
            float2 ip = floor(p);
            float2 fp = frac(p);
            float d00 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip), fp);
            float d01 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(0, 1)), fp - float2(0, 1));
            float d10 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 0)), fp - float2(1, 0));
            float d11 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 1)), fp - float2(1, 1));
            fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
            Out = lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x) + 0.5;
        }
        
        void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Multiply_float2_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A * B;
        }
        
        void Unity_Multiply_float_float(float A, float B, out float Out)
        {
            Out = A * B;
        }
        
        void Unity_Saturate_float(float In, out float Out)
        {
            Out = saturate(In);
        }
        
        void Unity_OneMinus_float(float In, out float Out)
        {
            Out = 1 - In;
        }
        
        void Unity_Length_float3(float3 In, out float Out)
        {
            Out = length(In);
        }
        
        void Unity_Add_float(float A, float B, out float Out)
        {
            Out = A + B;
        }
        
        void Unity_Subtract_float(float A, float B, out float Out)
        {
            Out = A - B;
        }
        
        void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
        {
            RGBA = float4(R, G, B, A);
            RGB = float3(R, G, B);
            RG = float2(R, G);
        }
        
        void Unity_Add_float3(float3 A, float3 B, out float3 Out)
        {
            Out = A + B;
        }
        
        void Unity_Normalize_float3(float3 In, out float3 Out)
        {
            Out = normalize(In);
        }
        
        void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out)
        {
        Out = A * B;
        }
        
        void Unity_DotProduct_float4(float4 A, float4 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void MagicFunction04_float(float PhaseOffset, float Mask, out float Output1, out float Output2){
        Output2 = PhaseOffset * 3.3;
        Output1 = (PhaseOffset * 1.2) + Output2 + Mask;
        }
        
        void Unity_DotProduct_float3(float3 A, float3 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void Unity_Add_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A + B;
        }
        
        void MagicFunction01_float(float2 Input, float LeafSpeed, float LeafFrequency, out float4 Output){
        Output = Input.xxyy * half4(1.975, 0.693, 0.375, 0.193) * 2 - 1;
        Output = Output * LeafSpeed * LeafFrequency;
        }
        
        void Unity_Add_float4(float4 A, float4 B, out float4 Out)
        {
            Out = A + B;
        }
        
        void Unity_Fraction_float4(float4 In, out float4 Out)
        {
            Out = frac(In);
        }
        
        void Unity_Remap_float4(float4 In, float2 InMinMax, float2 OutMinMax, out float4 Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Absolute_float4(float4 In, out float4 Out)
        {
            Out = abs(In);
        }
        
        struct Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float
        {
        };
        
        void SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(half4 Vector4_DF96E5E4, Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float IN, out float4 Output_0)
        {
        half4 _Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4 = Vector4_DF96E5E4;
        float4 _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4;
        Unity_Add_float4(_Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4, float4(0.5, 0.5, 0.5, 0.5), _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4);
        float4 _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4;
        Unity_Fraction_float4(_Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4, _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4);
        float4 _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4;
        Unity_Remap_float4(_Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4, float2 (0, 1), float2 (-1, 1), _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4);
        float4 _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        Unity_Absolute_float4(_Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4, _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4);
        Output_0 = _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        }
        
        struct Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float
        {
        };
        
        void SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(float Vector1_819C55C2, Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float IN, out float Output_1)
        {
        float _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float = Vector1_819C55C2;
        float _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float;
        Unity_Multiply_float_float(_Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float);
        float _Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float = float(3);
        float _Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float = float(2);
        float _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float;
        Unity_Multiply_float_float(_Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float);
        float _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float;
        Unity_Subtract_float(_Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float);
        float _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float, _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float);
        Output_1 = _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        }
        
        struct Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float
        {
        };
        
        void SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(float4 Vector4_68DFF216, Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float IN, out float4 Output_1)
        {
        float4 _Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4 = Vector4_68DFF216;
        Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb;
        float4 _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4;
        SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(_Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4);
        float _Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[0];
        float _Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[1];
        float _Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[2];
        float _Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[3];
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70;
        float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_1cbb2487f417c6868e9090b831565b47;
        float _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_5b215a667cfd2289bd51de570f828029;
        float _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae;
        float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float);
        float4 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4;
        float3 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3;
        float2 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2;
        Unity_Combine_float(_SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2);
        float4 _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        Unity_Remap_float4(_Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, float2 (0, 1), float2 (-0.5, 0.5), _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4);
        Output_1 = _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        }
        
        void MagicFunction02_float(float4 Input, out float3 Output){
        half2 a = Input.xz + Input.yw;
        Output = a.xyx;
        }
        
        void MagicFunction03_float(float3 Input, float LeafAmplitude, float LeafStiffness, float BranchAmplitude, float BranchStiffness, out float3 Output){
        half a = LeafAmplitude * LeafStiffness;
        half b = (1 - BranchStiffness) * BranchAmplitude;
        Output = half3(Input.x * a, b, Input.z * a);
        }
        
        struct Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float
        {
        float3 WorldSpaceNormal;
        float3 ObjectSpacePosition;
        float3 TimeParameters;
        };
        
        void SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half Vector1_F62CD300, float2 Vector2_445EBE29, half Vector1_3A36DA35, float Vector1_665407A7, half Vector1_71D12A3, half Vector1_74A19DBC, float Vector1_A1F46A31, float Vector1_1EF6B9C0, half Vector1_8825368F, Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float IN, out float3 Position_1)
        {
        float _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float;
        Unity_Length_float3(IN.ObjectSpacePosition, _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float);
        float3 _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3;
        _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3 = TransformObjectToWorld(IN.ObjectSpacePosition.xyz);
        float _Split_bb699580548be9859133ec0256572b7a_R_1_Float = IN.ObjectSpacePosition[0];
        float _Split_bb699580548be9859133ec0256572b7a_G_2_Float = IN.ObjectSpacePosition[1];
        float _Split_bb699580548be9859133ec0256572b7a_B_3_Float = IN.ObjectSpacePosition[2];
        float _Split_bb699580548be9859133ec0256572b7a_A_4_Float = 0;
        half _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float = Vector1_F62CD300;
        float _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float;
        Unity_Multiply_float_float(_Split_bb699580548be9859133ec0256572b7a_G_2_Float, _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float, _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float);
        float _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float;
        Unity_Add_float(_Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float, float(1), _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float);
        float _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float;
        Unity_Multiply_float_float(_Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float);
        float _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float);
        float _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float;
        Unity_Subtract_float(_Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float);
        float2 _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2 = Vector2_445EBE29;
        float2 _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2;
        Unity_Multiply_float2_float2((_Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float.xx), _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2, _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2);
        float _Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[0];
        float _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[1];
        float _Split_9e3462f5f0bbc383a084540e52efb606_B_3_Float = 0;
        float _Split_9e3462f5f0bbc383a084540e52efb606_A_4_Float = 0;
        float4 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4;
        float3 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3;
        float2 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2;
        Unity_Combine_float(_Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float, float(0), _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float, float(0), _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2);
        float3 _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3;
        Unity_Add_float3(_Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3);
        float3 _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3;
        _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3 = TransformWorldToObject(_Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3.xyz);
        float3 _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3;
        Unity_Normalize_float3(_Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3, _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3);
        float3 _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3;
        Unity_Multiply_float3_float3((_Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float.xxx), _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3, _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3);
        #if defined(_STATIC_SHADER)
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = float(0);
        #else
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = IN.TimeParameters.x;
        #endif
        half _Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float = Vector1_8825368F;
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M0_1_Vector4 = UNITY_MATRIX_M[0];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4 = UNITY_MATRIX_M[1];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M2_3_Vector4 = UNITY_MATRIX_M[2];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M3_4_Vector4 = UNITY_MATRIX_M[3];
        float _Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float = float(1);
        float _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float;
        Unity_DotProduct_float4(_MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4, (_Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float.xxxx), _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float);
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float;
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float;
        MagicFunction04_float(_Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float, _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float);
        float _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float;
        Unity_DotProduct_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, (_MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float.xxx), _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float);
        float4 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4;
        float3 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3;
        float2 _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2;
        Unity_Combine_float(_DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float, float(0), float(0), _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4, _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3, _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2);
        float2 _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2;
        Unity_Add_float2((_Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float.xx), _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2, _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2);
        half _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float = Vector1_3A36DA35;
        half _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float = Vector1_71D12A3;
        float4 _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4;
        MagicFunction01_float(_Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2, _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float, _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float, _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4);
        Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5;
        float4 _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4;
        SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(_MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4);
        float3 _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3;
        MagicFunction02_float(_SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4, _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3);
        half _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float = Vector1_74A19DBC;
        float _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float = Vector1_665407A7;
        float _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float = Vector1_1EF6B9C0;
        float _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float = Vector1_A1F46A31;
        float3 _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3;
        MagicFunction03_float(IN.WorldSpaceNormal, _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float, _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float, _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float, _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3);
        float3 _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3;
        Unity_Multiply_float3_float3(_MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3);
        float3 _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        Unity_Add_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3, _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3);
        Position_1 = _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        }
        
        // Custom interpolators pre vertex
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
        
        // Graph Vertex
        struct VertexDescription
        {
            float3 Position;
            float3 Normal;
            float3 Tangent;
        };
        
        VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
        {
            VertexDescription description = (VertexDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Vector2_be042102856745459ca75791c8997837_Out_0_Vector2 = float2(float(0.1), float(0));
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float;
            Unity_GradientNoise_Deterministic_float((IN.TimeParameters.x.xx), float(0.2), _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float;
            Unity_Remap_float(_GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float, float2 (0, 1), float2 (0.3, 1), _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2;
            Unity_Multiply_float2_float2(_Vector2_be042102856745459ca75791c8997837_Out_0_Vector2, (_Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float.xx), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float = IN.VertexColor[0];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float = IN.VertexColor[1];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float = IN.VertexColor[2];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_A_4_Float = IN.VertexColor[3];
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float;
            Unity_Multiply_float_float(_Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float, 0.5, _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float;
            Unity_Saturate_float(_Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float, _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float;
            Unity_OneMinus_float(_Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float, _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.WorldSpaceNormal = IN.WorldSpaceNormal;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.ObjectSpacePosition = IN.ObjectSpacePosition;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.TimeParameters = IN.TimeParameters;
            float3 _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half(0.05), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2, half(0.5), _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float, half(0.5), half(0.1), _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float, float(0.1), _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3);
            #endif
            description.Position = _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            description.Normal = IN.ObjectSpaceNormal;
            description.Tangent = IN.ObjectSpaceTangent;
            return description;
        }
        
        // Custom interpolators, pre surface
        #ifdef FEATURES_GRAPH_VERTEX
        Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
        {
        return output;
        }
        #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
        #endif
        
        // Graph Pixel
        struct SurfaceDescription
        {
            float Alpha;
            float AlphaClipThreshold;
        };
        
        SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
        {
            SurfaceDescription surface = (SurfaceDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_BaseMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.tex, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.samplerstate, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_R_4_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.r;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_G_5_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.g;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_B_6_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.b;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.a;
            #endif
            surface.Alpha = _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float;
            surface.AlphaClipThreshold = float(0.5);
            return surface;
        }
        
        // --------------------------------------------------
        // Build Graph Inputs
        #ifdef HAVE_VFX_MODIFICATION
        #define VFX_SRP_ATTRIBUTES Attributes
        #define VFX_SRP_VARYINGS Varyings
        #define VFX_SRP_SURFACE_INPUTS SurfaceDescriptionInputs
        #endif
        VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
        {
            VertexDescriptionInputs output;
            ZERO_INITIALIZE(VertexDescriptionInputs, output);
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceNormal =                          input.normalOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceTangent =                         input.tangentOS.xyz;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpacePosition =                        input.positionOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.VertexColor =                                input.color;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.TimeParameters =                             _TimeParameters.xyz;
        #endif
        
        
            return output;
        }
        SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
        {
            SurfaceDescriptionInputs output;
            ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
        
        #ifdef HAVE_VFX_MODIFICATION
        #if VFX_USE_GRAPH_VALUES
            uint instanceActiveIndex = asuint(UNITY_ACCESS_INSTANCED_PROP(PerInstance, _InstanceActiveIndex));
            /* WARNING: $splice Could not find named fragment 'VFXLoadGraphValues' */
        #endif
            /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */
        
        #endif
        
            
        
        
        
        
        
        
            #if UNITY_UV_STARTS_AT_TOP
            #else
            #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.uv0 = input.texCoord0;
        #endif
        
        #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
        #else
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        #endif
        #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        
                return output;
        }
        
        // --------------------------------------------------
        // Main
        
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Varyings.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl"
        
        // --------------------------------------------------
        // Visual Effect Vertex Invocations
        #ifdef HAVE_VFX_MODIFICATION
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/VisualEffectVertex.hlsl"
        #endif
        
        ENDHLSL
        }
        Pass
        {
            Name "DepthNormals"
            Tags
            {
                "LightMode" = "DepthNormals"
            }
        
        // Render State
        Cull Off
        ZTest LEqual
        ZWrite On
        
        // Debug
        // <None>
        
        // --------------------------------------------------
        // Pass
        
        HLSLPROGRAM
        
        // Pragmas
        #pragma target 2.0
        #pragma multi_compile_instancing
        #pragma vertex vert
        #pragma fragment frag
        
 
        
        #if defined(_ENABLE_SSS)
            #define KEYWORD_PERMUTATION_0
        #else
            #define KEYWORD_PERMUTATION_1
        #endif
        
        
        // Defines
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMALMAP 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMAL_DROPOFF_TS 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_NORMAL
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TANGENT
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD0
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_COLOR
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_NORMAL_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TANGENT_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TEXCOORD0
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_CULLFACE
        #endif
        
        #define FEATURES_GRAPH_VERTEX
        /* WARNING: $splice Could not find named fragment 'PassInstancing' */
        #define SHADERPASS SHADERPASS_DEPTHNORMALS
        #define _ALPHATEST_ON 1
        #define USE_UNITY_CROSSFADE 1
        
        
        // custom interpolator pre-include
        /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
        
        // Includes
       // #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
        //#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
        //#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
        
        // --------------------------------------------------
        // Structs and Packing
        
        // custom interpolators pre packing
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
        
        struct Attributes
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionOS : POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalOS : NORMAL;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentOS : TANGENT;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0 : TEXCOORD0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv1 : TEXCOORD1;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color : COLOR;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : INSTANCEID_SEMANTIC;
            #endif
            #endif
        };
        struct Varyings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        struct SurfaceDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 TangentSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float FaceSign;
            #endif
        };
        struct VertexDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpacePosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 VertexColor;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 TimeParameters;
            #endif
        };
        struct PackedVaryings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentWS : INTERP0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0 : INTERP1;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalWS : INTERP2;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        PackedVaryings PackVaryings (Varyings input)
        {
            PackedVaryings output;
            ZERO_INITIALIZE(PackedVaryings, output);
            output.positionCS = input.positionCS;
            output.tangentWS.xyzw = input.tangentWS;
            output.texCoord0.xyzw = input.texCoord0;
            output.normalWS.xyz = input.normalWS;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        
        Varyings UnpackVaryings (PackedVaryings input)
        {
            Varyings output;
            output.positionCS = input.positionCS;
            output.tangentWS = input.tangentWS.xyzw;
            output.texCoord0 = input.texCoord0.xyzw;
            output.normalWS = input.normalWS.xyz;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        #endif
        
        // --------------------------------------------------
        // Graph
        
        // Graph Properties
        CBUFFER_START(UnityPerMaterial)
        float4 _BaseMap_TexelSize;
        float4 _NormalMap_TexelSize;
        float4 _MaskMap_TexelSize;
        float4 _ScatteringColor_TexelSize;
        float _ScatteringIntensity;
        float _FresnelDamping;
        float2 _Direction;
        float _Speed;
        float _Amplitude;
        float _Vertex_Color_AO;
        float _Smoothness;
        float _NormalStrength;
        CBUFFER_END
        
        
        // Object and Global properties
        SAMPLER(SamplerState_Linear_Repeat);
        TEXTURE2D(_BaseMap);
        SAMPLER(sampler_BaseMap);
        TEXTURE2D(_NormalMap);
        SAMPLER(sampler_NormalMap);
        TEXTURE2D(_MaskMap);
        SAMPLER(sampler_MaskMap);
        TEXTURE2D(_ScatteringColor);
        SAMPLER(sampler_ScatteringColor);
        
        // Graph Includes
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Hashes.hlsl"
        
        // -- Property used by ScenePickingPass
        #ifdef SCENEPICKINGPASS
        float4 _SelectionID;
        #endif
        
        // -- Properties used by SceneSelectionPass
        #ifdef SCENESELECTIONPASS
        int _ObjectId;
        int _PassValue;
        #endif
        
        // Graph Functions
        
        float2 Unity_GradientNoise_Deterministic_Dir_float(float2 p)
        {
            float x; Hash_Tchou_2_1_float(p, x);
            return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
        }
        
        void Unity_GradientNoise_Deterministic_float (float2 UV, float3 Scale, out float Out)
        {
            float2 p = UV * Scale.xy;
            float2 ip = floor(p);
            float2 fp = frac(p);
            float d00 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip), fp);
            float d01 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(0, 1)), fp - float2(0, 1));
            float d10 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 0)), fp - float2(1, 0));
            float d11 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 1)), fp - float2(1, 1));
            fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
            Out = lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x) + 0.5;
        }
        
        void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Multiply_float2_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A * B;
        }
        
        void Unity_Multiply_float_float(float A, float B, out float Out)
        {
            Out = A * B;
        }
        
        void Unity_Saturate_float(float In, out float Out)
        {
            Out = saturate(In);
        }
        
        void Unity_OneMinus_float(float In, out float Out)
        {
            Out = 1 - In;
        }
        
        void Unity_Length_float3(float3 In, out float Out)
        {
            Out = length(In);
        }
        
        void Unity_Add_float(float A, float B, out float Out)
        {
            Out = A + B;
        }
        
        void Unity_Subtract_float(float A, float B, out float Out)
        {
            Out = A - B;
        }
        
        void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
        {
            RGBA = float4(R, G, B, A);
            RGB = float3(R, G, B);
            RG = float2(R, G);
        }
        
        void Unity_Add_float3(float3 A, float3 B, out float3 Out)
        {
            Out = A + B;
        }
        
        void Unity_Normalize_float3(float3 In, out float3 Out)
        {
            Out = normalize(In);
        }
        
        void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out)
        {
        Out = A * B;
        }
        
        void Unity_DotProduct_float4(float4 A, float4 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void MagicFunction04_float(float PhaseOffset, float Mask, out float Output1, out float Output2){
        Output2 = PhaseOffset * 3.3;
        Output1 = (PhaseOffset * 1.2) + Output2 + Mask;
        }
        
        void Unity_DotProduct_float3(float3 A, float3 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void Unity_Add_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A + B;
        }
        
        void MagicFunction01_float(float2 Input, float LeafSpeed, float LeafFrequency, out float4 Output){
        Output = Input.xxyy * half4(1.975, 0.693, 0.375, 0.193) * 2 - 1;
        Output = Output * LeafSpeed * LeafFrequency;
        }
        
        void Unity_Add_float4(float4 A, float4 B, out float4 Out)
        {
            Out = A + B;
        }
        
        void Unity_Fraction_float4(float4 In, out float4 Out)
        {
            Out = frac(In);
        }
        
        void Unity_Remap_float4(float4 In, float2 InMinMax, float2 OutMinMax, out float4 Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Absolute_float4(float4 In, out float4 Out)
        {
            Out = abs(In);
        }
        
        struct Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float
        {
        };
        
        void SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(half4 Vector4_DF96E5E4, Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float IN, out float4 Output_0)
        {
        half4 _Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4 = Vector4_DF96E5E4;
        float4 _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4;
        Unity_Add_float4(_Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4, float4(0.5, 0.5, 0.5, 0.5), _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4);
        float4 _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4;
        Unity_Fraction_float4(_Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4, _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4);
        float4 _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4;
        Unity_Remap_float4(_Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4, float2 (0, 1), float2 (-1, 1), _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4);
        float4 _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        Unity_Absolute_float4(_Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4, _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4);
        Output_0 = _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        }
        
        struct Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float
        {
        };
        
        void SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(float Vector1_819C55C2, Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float IN, out float Output_1)
        {
        float _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float = Vector1_819C55C2;
        float _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float;
        Unity_Multiply_float_float(_Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float);
        float _Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float = float(3);
        float _Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float = float(2);
        float _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float;
        Unity_Multiply_float_float(_Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float);
        float _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float;
        Unity_Subtract_float(_Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float);
        float _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float, _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float);
        Output_1 = _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        }
        
        struct Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float
        {
        };
        
        void SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(float4 Vector4_68DFF216, Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float IN, out float4 Output_1)
        {
        float4 _Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4 = Vector4_68DFF216;
        Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb;
        float4 _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4;
        SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(_Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4);
        float _Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[0];
        float _Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[1];
        float _Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[2];
        float _Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[3];
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70;
        float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_1cbb2487f417c6868e9090b831565b47;
        float _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_5b215a667cfd2289bd51de570f828029;
        float _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae;
        float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float);
        float4 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4;
        float3 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3;
        float2 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2;
        Unity_Combine_float(_SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2);
        float4 _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        Unity_Remap_float4(_Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, float2 (0, 1), float2 (-0.5, 0.5), _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4);
        Output_1 = _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        }
        
        void MagicFunction02_float(float4 Input, out float3 Output){
        half2 a = Input.xz + Input.yw;
        Output = a.xyx;
        }
        
        void MagicFunction03_float(float3 Input, float LeafAmplitude, float LeafStiffness, float BranchAmplitude, float BranchStiffness, out float3 Output){
        half a = LeafAmplitude * LeafStiffness;
        half b = (1 - BranchStiffness) * BranchAmplitude;
        Output = half3(Input.x * a, b, Input.z * a);
        }
        
        struct Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float
        {
        float3 WorldSpaceNormal;
        float3 ObjectSpacePosition;
        float3 TimeParameters;
        };
        
        void SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half Vector1_F62CD300, float2 Vector2_445EBE29, half Vector1_3A36DA35, float Vector1_665407A7, half Vector1_71D12A3, half Vector1_74A19DBC, float Vector1_A1F46A31, float Vector1_1EF6B9C0, half Vector1_8825368F, Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float IN, out float3 Position_1)
        {
        float _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float;
        Unity_Length_float3(IN.ObjectSpacePosition, _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float);
        float3 _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3;
        _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3 = TransformObjectToWorld(IN.ObjectSpacePosition.xyz);
        float _Split_bb699580548be9859133ec0256572b7a_R_1_Float = IN.ObjectSpacePosition[0];
        float _Split_bb699580548be9859133ec0256572b7a_G_2_Float = IN.ObjectSpacePosition[1];
        float _Split_bb699580548be9859133ec0256572b7a_B_3_Float = IN.ObjectSpacePosition[2];
        float _Split_bb699580548be9859133ec0256572b7a_A_4_Float = 0;
        half _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float = Vector1_F62CD300;
        float _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float;
        Unity_Multiply_float_float(_Split_bb699580548be9859133ec0256572b7a_G_2_Float, _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float, _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float);
        float _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float;
        Unity_Add_float(_Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float, float(1), _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float);
        float _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float;
        Unity_Multiply_float_float(_Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float);
        float _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float);
        float _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float;
        Unity_Subtract_float(_Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float);
        float2 _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2 = Vector2_445EBE29;
        float2 _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2;
        Unity_Multiply_float2_float2((_Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float.xx), _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2, _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2);
        float _Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[0];
        float _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[1];
        float _Split_9e3462f5f0bbc383a084540e52efb606_B_3_Float = 0;
        float _Split_9e3462f5f0bbc383a084540e52efb606_A_4_Float = 0;
        float4 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4;
        float3 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3;
        float2 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2;
        Unity_Combine_float(_Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float, float(0), _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float, float(0), _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2);
        float3 _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3;
        Unity_Add_float3(_Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3);
        float3 _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3;
        _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3 = TransformWorldToObject(_Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3.xyz);
        float3 _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3;
        Unity_Normalize_float3(_Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3, _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3);
        float3 _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3;
        Unity_Multiply_float3_float3((_Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float.xxx), _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3, _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3);
        #if defined(_STATIC_SHADER)
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = float(0);
        #else
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = IN.TimeParameters.x;
        #endif
        half _Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float = Vector1_8825368F;
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M0_1_Vector4 = UNITY_MATRIX_M[0];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4 = UNITY_MATRIX_M[1];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M2_3_Vector4 = UNITY_MATRIX_M[2];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M3_4_Vector4 = UNITY_MATRIX_M[3];
        float _Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float = float(1);
        float _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float;
        Unity_DotProduct_float4(_MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4, (_Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float.xxxx), _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float);
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float;
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float;
        MagicFunction04_float(_Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float, _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float);
        float _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float;
        Unity_DotProduct_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, (_MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float.xxx), _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float);
        float4 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4;
        float3 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3;
        float2 _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2;
        Unity_Combine_float(_DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float, float(0), float(0), _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4, _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3, _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2);
        float2 _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2;
        Unity_Add_float2((_Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float.xx), _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2, _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2);
        half _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float = Vector1_3A36DA35;
        half _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float = Vector1_71D12A3;
        float4 _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4;
        MagicFunction01_float(_Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2, _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float, _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float, _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4);
        Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5;
        float4 _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4;
        SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(_MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4);
        float3 _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3;
        MagicFunction02_float(_SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4, _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3);
        half _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float = Vector1_74A19DBC;
        float _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float = Vector1_665407A7;
        float _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float = Vector1_1EF6B9C0;
        float _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float = Vector1_A1F46A31;
        float3 _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3;
        MagicFunction03_float(IN.WorldSpaceNormal, _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float, _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float, _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float, _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3);
        float3 _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3;
        Unity_Multiply_float3_float3(_MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3);
        float3 _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        Unity_Add_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3, _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3);
        Position_1 = _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        }
        
        void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out)
        {
            Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength)));
        }
        
        void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out)
        {
            Out = Predicate ? True : False;
        }
        
        // Custom interpolators pre vertex
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
        
        // Graph Vertex
        struct VertexDescription
        {
            float3 Position;
            float3 Normal;
            float3 Tangent;
        };
        
        VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
        {
            VertexDescription description = (VertexDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Vector2_be042102856745459ca75791c8997837_Out_0_Vector2 = float2(float(0.1), float(0));
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float;
            Unity_GradientNoise_Deterministic_float((IN.TimeParameters.x.xx), float(0.2), _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float;
            Unity_Remap_float(_GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float, float2 (0, 1), float2 (0.3, 1), _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2;
            Unity_Multiply_float2_float2(_Vector2_be042102856745459ca75791c8997837_Out_0_Vector2, (_Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float.xx), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float = IN.VertexColor[0];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float = IN.VertexColor[1];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float = IN.VertexColor[2];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_A_4_Float = IN.VertexColor[3];
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float;
            Unity_Multiply_float_float(_Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float, 0.5, _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float;
            Unity_Saturate_float(_Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float, _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float;
            Unity_OneMinus_float(_Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float, _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.WorldSpaceNormal = IN.WorldSpaceNormal;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.ObjectSpacePosition = IN.ObjectSpacePosition;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.TimeParameters = IN.TimeParameters;
            float3 _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half(0.05), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2, half(0.5), _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float, half(0.5), half(0.1), _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float, float(0.1), _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3);
            #endif
            description.Position = _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            description.Normal = IN.ObjectSpaceNormal;
            description.Tangent = IN.ObjectSpaceTangent;
            return description;
        }
        
        // Custom interpolators, pre surface
        #ifdef FEATURES_GRAPH_VERTEX
        Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
        {
        return output;
        }
        #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
        #endif
        
        // Graph Pixel
        struct SurfaceDescription
        {
            float3 NormalTS;
            float Alpha;
            float AlphaClipThreshold;
        };
        
        SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
        {
            SurfaceDescription surface = (SurfaceDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _IsFrontFace_a7358c783778400db0359723f12a3a85_Out_0_Boolean = max(0, IN.FaceSign.x);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_NormalMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.tex, _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.samplerstate, _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.rgb = UnpackNormal(_SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4);
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_R_4_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.r;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_G_5_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.g;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_B_6_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.b;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_A_7_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_903342e174b34297903a3355b6b6ca13_Out_0_Float = _NormalStrength;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3;
            Unity_NormalStrength_float((_SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.xyz), _Property_903342e174b34297903a3355b6b6ca13_Out_0_Float, _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Float_4d4aa49678964e3fba9145b8c09543bd_Out_0_Float = float(-1);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3;
            Unity_Multiply_float3_float3(_NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3, (_Float_4d4aa49678964e3fba9145b8c09543bd_Out_0_Float.xxx), _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3;
            Unity_Branch_float3(_IsFrontFace_a7358c783778400db0359723f12a3a85_Out_0_Boolean, _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3, _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3, _Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_BaseMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.tex, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.samplerstate, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_R_4_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.r;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_G_5_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.g;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_B_6_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.b;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.a;
            #endif
            surface.NormalTS = _Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3;
            surface.Alpha = _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float;
            surface.AlphaClipThreshold = float(0.5);
            return surface;
        }
        
        // --------------------------------------------------
        // Build Graph Inputs
        #ifdef HAVE_VFX_MODIFICATION
        #define VFX_SRP_ATTRIBUTES Attributes
        #define VFX_SRP_VARYINGS Varyings
        #define VFX_SRP_SURFACE_INPUTS SurfaceDescriptionInputs
        #endif
        VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
        {
            VertexDescriptionInputs output;
            ZERO_INITIALIZE(VertexDescriptionInputs, output);
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceNormal =                          input.normalOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceTangent =                         input.tangentOS.xyz;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpacePosition =                        input.positionOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.VertexColor =                                input.color;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.TimeParameters =                             _TimeParameters.xyz;
        #endif
        
        
            return output;
        }
        SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
        {
            SurfaceDescriptionInputs output;
            ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
        
        #ifdef HAVE_VFX_MODIFICATION
        #if VFX_USE_GRAPH_VALUES
            uint instanceActiveIndex = asuint(UNITY_ACCESS_INSTANCED_PROP(PerInstance, _InstanceActiveIndex));
            /* WARNING: $splice Could not find named fragment 'VFXLoadGraphValues' */
        #endif
            /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */
        
        #endif
        
            
        
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.TangentSpaceNormal = float3(0.0f, 0.0f, 1.0f);
        #endif
        
        
        
        
            #if UNITY_UV_STARTS_AT_TOP
            #else
            #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.uv0 = input.texCoord0;
        #endif
        
        #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
        #else
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        #endif
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        #endif
        
        #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        
                return output;
        }
        
        // --------------------------------------------------
        // Main
        
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Varyings.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthNormalsOnlyPass.hlsl"
        
        // --------------------------------------------------
        // Visual Effect Vertex Invocations
        #ifdef HAVE_VFX_MODIFICATION
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/VisualEffectVertex.hlsl"
        #endif
        
        ENDHLSL
        }
        Pass
        {
            Name "Meta"
            Tags
            {
                "LightMode" = "Meta"
            }
        
        // Render State
        Cull Off
        
        // Debug
        // <None>
        
        // --------------------------------------------------
        // Pass
        
        HLSLPROGRAM
        
        // Pragmas
        #pragma target 2.0
        #pragma vertex vert
        #pragma fragment frag
        
        // Keywords
        #pragma shader_feature _ EDITOR_VISUALIZATION
        #pragma shader_feature_local _ _ENABLE_SSS
        
        #if defined(_ENABLE_SSS)
            #define KEYWORD_PERMUTATION_0
        #else
            #define KEYWORD_PERMUTATION_1
        #endif
        
        
        // Defines
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMALMAP 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define _NORMAL_DROPOFF_TS 1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_NORMAL
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TANGENT
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD0
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_TEXCOORD2
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define ATTRIBUTES_NEED_COLOR
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_POSITION_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_NORMAL_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TANGENT_WS
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TEXCOORD0
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TEXCOORD1
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_TEXCOORD2
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_COLOR
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        #define VARYINGS_NEED_CULLFACE
        #endif
        
        #define FEATURES_GRAPH_VERTEX
        /* WARNING: $splice Could not find named fragment 'PassInstancing' */
        #define SHADERPASS SHADERPASS_META
        #define _FOG_FRAGMENT 1
        #define _ALPHATEST_ON 1
        
        
        // custom interpolator pre-include
        /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */
        
        // Includes
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
        //#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/MetaInput.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
        
        // --------------------------------------------------
        // Structs and Packing
        
        // custom interpolators pre packing
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */
        
        struct Attributes
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionOS : POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalOS : NORMAL;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentOS : TANGENT;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0 : TEXCOORD0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv1 : TEXCOORD1;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv2 : TEXCOORD2;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color : COLOR;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : INSTANCEID_SEMANTIC;
            #endif
            #endif
        };
        struct Varyings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentWS;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord1;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord2;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        struct SurfaceDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceBiTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceViewDirection;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpacePosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float2 NDCPosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float2 PixelPosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 uv0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 VertexColor;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float FaceSign;
            #endif
        };
        struct VertexDescriptionInputs
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 WorldSpaceNormal;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpaceTangent;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 ObjectSpacePosition;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 VertexColor;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 TimeParameters;
            #endif
        };
        struct PackedVaryings
        {
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 positionCS : SV_POSITION;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 tangentWS : INTERP0;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord0 : INTERP1;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord1 : INTERP2;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 texCoord2 : INTERP3;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float4 color : INTERP4;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 positionWS : INTERP5;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             float3 normalWS : INTERP6;
            #endif
            #if UNITY_ANY_INSTANCING_ENABLED
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint instanceID : CUSTOM_INSTANCE_ID;
            #endif
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0;
            #endif
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex;
            #endif
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
             FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC;
            #endif
            #endif
        };
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        PackedVaryings PackVaryings (Varyings input)
        {
            PackedVaryings output;
            ZERO_INITIALIZE(PackedVaryings, output);
            output.positionCS = input.positionCS;
            output.tangentWS.xyzw = input.tangentWS;
            output.texCoord0.xyzw = input.texCoord0;
            output.texCoord1.xyzw = input.texCoord1;
            output.texCoord2.xyzw = input.texCoord2;
            output.color.xyzw = input.color;
            output.positionWS.xyz = input.positionWS;
            output.normalWS.xyz = input.normalWS;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        
        Varyings UnpackVaryings (PackedVaryings input)
        {
            Varyings output;
            output.positionCS = input.positionCS;
            output.tangentWS = input.tangentWS.xyzw;
            output.texCoord0 = input.texCoord0.xyzw;
            output.texCoord1 = input.texCoord1.xyzw;
            output.texCoord2 = input.texCoord2.xyzw;
            output.color = input.color.xyzw;
            output.positionWS = input.positionWS.xyz;
            output.normalWS = input.normalWS.xyz;
            #if UNITY_ANY_INSTANCING_ENABLED
            output.instanceID = input.instanceID;
            #endif
            #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE)))
            output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0;
            #endif
            #if (defined(UNITY_STEREO_INSTANCING_ENABLED))
            output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx;
            #endif
            #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
            output.cullFace = input.cullFace;
            #endif
            return output;
        }
        #endif
        
        // --------------------------------------------------
        // Graph
        
        // Graph Properties
        CBUFFER_START(UnityPerMaterial)
        float4 _BaseMap_TexelSize;
        float4 _NormalMap_TexelSize;
        float4 _MaskMap_TexelSize;
        float4 _ScatteringColor_TexelSize;
        float _ScatteringIntensity;
        float _FresnelDamping;
        float2 _Direction;
        float _Speed;
        float _Amplitude;
        float _Vertex_Color_AO;
        float _Smoothness;
        float _NormalStrength;
        CBUFFER_END
        
        
        // Object and Global properties
        SAMPLER(SamplerState_Linear_Repeat);
        TEXTURE2D(_BaseMap);
        SAMPLER(sampler_BaseMap);
        TEXTURE2D(_NormalMap);
        SAMPLER(sampler_NormalMap);
        TEXTURE2D(_MaskMap);
        SAMPLER(sampler_MaskMap);
        TEXTURE2D(_ScatteringColor);
        SAMPLER(sampler_ScatteringColor);
        
        // Graph Includes
        #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Hashes.hlsl"
        #include "CustomFunctionNodes.hlsl"
        
        // -- Property used by ScenePickingPass
        #ifdef SCENEPICKINGPASS
        float4 _SelectionID;
        #endif
        
        // -- Properties used by SceneSelectionPass
        #ifdef SCENESELECTIONPASS
        int _ObjectId;
        int _PassValue;
        #endif
        
        // Graph Functions
        
        float2 Unity_GradientNoise_Deterministic_Dir_float(float2 p)
        {
            float x; Hash_Tchou_2_1_float(p, x);
            return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
        }
        
        void Unity_GradientNoise_Deterministic_float (float2 UV, float3 Scale, out float Out)
        {
            float2 p = UV * Scale.xy;
            float2 ip = floor(p);
            float2 fp = frac(p);
            float d00 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip), fp);
            float d01 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(0, 1)), fp - float2(0, 1));
            float d10 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 0)), fp - float2(1, 0));
            float d11 = dot(Unity_GradientNoise_Deterministic_Dir_float(ip + float2(1, 1)), fp - float2(1, 1));
            fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
            Out = lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x) + 0.5;
        }
        
        void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Multiply_float2_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A * B;
        }
        
        void Unity_Multiply_float_float(float A, float B, out float Out)
        {
            Out = A * B;
        }
        
        void Unity_Saturate_float(float In, out float Out)
        {
            Out = saturate(In);
        }
        
        void Unity_OneMinus_float(float In, out float Out)
        {
            Out = 1 - In;
        }
        
        void Unity_Length_float3(float3 In, out float Out)
        {
            Out = length(In);
        }
        
        void Unity_Add_float(float A, float B, out float Out)
        {
            Out = A + B;
        }
        
        void Unity_Subtract_float(float A, float B, out float Out)
        {
            Out = A - B;
        }
        
        void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
        {
            RGBA = float4(R, G, B, A);
            RGB = float3(R, G, B);
            RG = float2(R, G);
        }
        
        void Unity_Add_float3(float3 A, float3 B, out float3 Out)
        {
            Out = A + B;
        }
        
        void Unity_Normalize_float3(float3 In, out float3 Out)
        {
            Out = normalize(In);
        }
        
        void Unity_Multiply_float3_float3(float3 A, float3 B, out float3 Out)
        {
        Out = A * B;
        }
        
        void Unity_DotProduct_float4(float4 A, float4 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void MagicFunction04_float(float PhaseOffset, float Mask, out float Output1, out float Output2){
        Output2 = PhaseOffset * 3.3;
        Output1 = (PhaseOffset * 1.2) + Output2 + Mask;
        }
        
        void Unity_DotProduct_float3(float3 A, float3 B, out float Out)
        {
            Out = dot(A, B);
        }
        
        void Unity_Add_float2(float2 A, float2 B, out float2 Out)
        {
            Out = A + B;
        }
        
        void MagicFunction01_float(float2 Input, float LeafSpeed, float LeafFrequency, out float4 Output){
        Output = Input.xxyy * half4(1.975, 0.693, 0.375, 0.193) * 2 - 1;
        Output = Output * LeafSpeed * LeafFrequency;
        }
        
        void Unity_Add_float4(float4 A, float4 B, out float4 Out)
        {
            Out = A + B;
        }
        
        void Unity_Fraction_float4(float4 In, out float4 Out)
        {
            Out = frac(In);
        }
        
        void Unity_Remap_float4(float4 In, float2 InMinMax, float2 OutMinMax, out float4 Out)
        {
            Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
        }
        
        void Unity_Absolute_float4(float4 In, out float4 Out)
        {
            Out = abs(In);
        }
        
        struct Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float
        {
        };
        
        void SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(half4 Vector4_DF96E5E4, Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float IN, out float4 Output_0)
        {
        half4 _Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4 = Vector4_DF96E5E4;
        float4 _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4;
        Unity_Add_float4(_Property_00a5519be6a37d81a6cb9ac9f6aa3c2b_Out_0_Vector4, float4(0.5, 0.5, 0.5, 0.5), _Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4);
        float4 _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4;
        Unity_Fraction_float4(_Add_679b68d8cab68489a385dd36b6166a25_Out_2_Vector4, _Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4);
        float4 _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4;
        Unity_Remap_float4(_Fraction_41d272524279598f99182ec8e93696b5_Out_1_Vector4, float2 (0, 1), float2 (-1, 1), _Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4);
        float4 _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        Unity_Absolute_float4(_Remap_65a0ac8ba9d23b88ba7ebf0cba9a001f_Out_3_Vector4, _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4);
        Output_0 = _Absolute_e192b7fd9505818cb354773677f0edf1_Out_1_Vector4;
        }
        
        struct Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float
        {
        };
        
        void SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(float Vector1_819C55C2, Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float IN, out float Output_1)
        {
        float _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float = Vector1_819C55C2;
        float _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float;
        Unity_Multiply_float_float(_Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float);
        float _Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float = float(3);
        float _Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float = float(2);
        float _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float;
        Unity_Multiply_float_float(_Float_d5fa1d3d3b7c10808d109a6d58b97d3f_Out_0_Float, _Property_9ca787ba791ac480b3c00079c573938f_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float);
        float _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float;
        Unity_Subtract_float(_Float_468568213bbd3f8c9e6e6c15b3573cc2_Out_0_Float, _Multiply_7fef6a307cfd6a8ca7b0d7ea9885c787_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float);
        float _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_318d25e71d79118aade1b2ed48e11444_Out_2_Float, _Subtract_b43aee4ff352d7849fa966c090f8d4e7_Out_2_Float, _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float);
        Output_1 = _Multiply_42d1848d715f3c89998909d5488205b2_Out_2_Float;
        }
        
        struct Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float
        {
        };
        
        void SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(float4 Vector4_68DFF216, Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float IN, out float4 Output_1)
        {
        float4 _Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4 = Vector4_68DFF216;
        Bindings_TriangleWave_48cd7b341caff49ce81679662afbb323_float _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb;
        float4 _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4;
        SG_TriangleWave_48cd7b341caff49ce81679662afbb323_float(_Property_cfd0f14a9048798a895f86566622a218_Out_0_Vector4, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb, _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4);
        float _Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[0];
        float _Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[1];
        float _Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[2];
        float _Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float = _TriangleWave_631d91b744549a8cb8b30ec6ce3943eb_Output_0_Vector4[3];
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70;
        float _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_R_1_Float, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70, _SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_1cbb2487f417c6868e9090b831565b47;
        float _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_G_2_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_5b215a667cfd2289bd51de570f828029;
        float _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_B_3_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float);
        Bindings_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae;
        float _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float;
        SG_SmoothCurve_b24606f36641e4fcf93768133d4dfad0_float(_Split_8fe849258c41bb83b297ff1aab14c095_A_4_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float);
        float4 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4;
        float3 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3;
        float2 _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2;
        Unity_Combine_float(_SmoothCurve_99db9050a33db188bd95e2fc8eb04d70_Output_1_Float, _SmoothCurve_1cbb2487f417c6868e9090b831565b47_Output_1_Float, _SmoothCurve_5b215a667cfd2289bd51de570f828029_Output_1_Float, _SmoothCurve_cfad403bce8bea84b9712fb7d763b3ae_Output_1_Float, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGB_5_Vector3, _Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RG_6_Vector2);
        float4 _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        Unity_Remap_float4(_Combine_66c3ab03227d4b8bbeaceae1b5bf6c65_RGBA_4_Vector4, float2 (0, 1), float2 (-0.5, 0.5), _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4);
        Output_1 = _Remap_cb96ee84aece6280a69817386813c33f_Out_3_Vector4;
        }
        
        void MagicFunction02_float(float4 Input, out float3 Output){
        half2 a = Input.xz + Input.yw;
        Output = a.xyx;
        }
        
        void MagicFunction03_float(float3 Input, float LeafAmplitude, float LeafStiffness, float BranchAmplitude, float BranchStiffness, out float3 Output){
        half a = LeafAmplitude * LeafStiffness;
        half b = (1 - BranchStiffness) * BranchAmplitude;
        Output = half3(Input.x * a, b, Input.z * a);
        }
        
        struct Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float
        {
        float3 WorldSpaceNormal;
        float3 ObjectSpacePosition;
        float3 TimeParameters;
        };
        
        void SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half Vector1_F62CD300, float2 Vector2_445EBE29, half Vector1_3A36DA35, float Vector1_665407A7, half Vector1_71D12A3, half Vector1_74A19DBC, float Vector1_A1F46A31, float Vector1_1EF6B9C0, half Vector1_8825368F, Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float IN, out float3 Position_1)
        {
        float _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float;
        Unity_Length_float3(IN.ObjectSpacePosition, _Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float);
        float3 _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3;
        _Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3 = TransformObjectToWorld(IN.ObjectSpacePosition.xyz);
        float _Split_bb699580548be9859133ec0256572b7a_R_1_Float = IN.ObjectSpacePosition[0];
        float _Split_bb699580548be9859133ec0256572b7a_G_2_Float = IN.ObjectSpacePosition[1];
        float _Split_bb699580548be9859133ec0256572b7a_B_3_Float = IN.ObjectSpacePosition[2];
        float _Split_bb699580548be9859133ec0256572b7a_A_4_Float = 0;
        half _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float = Vector1_F62CD300;
        float _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float;
        Unity_Multiply_float_float(_Split_bb699580548be9859133ec0256572b7a_G_2_Float, _Property_02b2c42c55740987a74c0978956bd085_Out_0_Float, _Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float);
        float _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float;
        Unity_Add_float(_Multiply_7625fd657aa78088a97c587025a3c06e_Out_2_Float, float(1), _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float);
        float _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float;
        Unity_Multiply_float_float(_Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Add_61d9695b584c5a87a9ed622065f6aa36_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float);
        float _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float;
        Unity_Multiply_float_float(_Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float);
        float _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float;
        Unity_Subtract_float(_Multiply_55310288275cc786afb68e9848ef2d11_Out_2_Float, _Multiply_f2512b115e20118b8cb2b56c4a2488ff_Out_2_Float, _Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float);
        float2 _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2 = Vector2_445EBE29;
        float2 _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2;
        Unity_Multiply_float2_float2((_Subtract_f1f39530b5f50f8289cbb519c800b236_Out_2_Float.xx), _Property_a3df41abc4ad128482fa73a67c1489c2_Out_0_Vector2, _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2);
        float _Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[0];
        float _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float = _Multiply_eaeea828f1283d80acbee01fb331b746_Out_2_Vector2[1];
        float _Split_9e3462f5f0bbc383a084540e52efb606_B_3_Float = 0;
        float _Split_9e3462f5f0bbc383a084540e52efb606_A_4_Float = 0;
        float4 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4;
        float3 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3;
        float2 _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2;
        Unity_Combine_float(_Split_9e3462f5f0bbc383a084540e52efb606_R_1_Float, float(0), _Split_9e3462f5f0bbc383a084540e52efb606_G_2_Float, float(0), _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGBA_4_Vector4, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RG_6_Vector2);
        float3 _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3;
        Unity_Add_float3(_Transform_36e9771ae8ea4d89b8026f684574bec4_Out_1_Vector3, _Combine_fb53cc67b09bbb89b188c4e589dcb20a_RGB_5_Vector3, _Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3);
        float3 _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3;
        _Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3 = TransformWorldToObject(_Add_851b1a6cb7a8788eb1d6d82250d92038_Out_2_Vector3.xyz);
        float3 _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3;
        Unity_Normalize_float3(_Transform_62c66f20d2da4eeb88f7efadee04a74f_Out_1_Vector3, _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3);
        float3 _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3;
        Unity_Multiply_float3_float3((_Length_82fed625a4240c8881fd05b910fbf3e9_Out_1_Float.xxx), _Normalize_5805f8d4cf175c8aad239b019ad06457_Out_1_Vector3, _Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3);
        #if defined(_STATIC_SHADER)
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = float(0);
        #else
        float _Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float = IN.TimeParameters.x;
        #endif
        half _Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float = Vector1_8825368F;
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M0_1_Vector4 = UNITY_MATRIX_M[0];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4 = UNITY_MATRIX_M[1];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M2_3_Vector4 = UNITY_MATRIX_M[2];
        float4 _MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M3_4_Vector4 = UNITY_MATRIX_M[3];
        float _Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float = float(1);
        float _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float;
        Unity_DotProduct_float4(_MatrixSplit_0fadc0235c2d8d8fba20bd2c1fb00fd8_M1_2_Vector4, (_Float_1dc190eca5014782b93f897bf1df716c_Out_0_Float.xxxx), _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float);
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float;
        float _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float;
        MagicFunction04_float(_Property_eccfc4f7ee4086858ca2be1991c7d3cc_Out_0_Float, _DotProduct_4ac6a0225f30af80a307a95157f1cbcd_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float);
        float _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float;
        Unity_DotProduct_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, (_MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output1_2_Float.xxx), _DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float);
        float4 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4;
        float3 _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3;
        float2 _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2;
        Unity_Combine_float(_DotProduct_2c5ecad1583f6582b81f85c229b3a346_Out_2_Float, _MagicFunction04CustomFunction_0527f6c4c6e7ed8aa455fb1c96ce2fab_Output2_3_Float, float(0), float(0), _Combine_46100a525fd10b89907d8a5cbf5059c7_RGBA_4_Vector4, _Combine_46100a525fd10b89907d8a5cbf5059c7_RGB_5_Vector3, _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2);
        float2 _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2;
        Unity_Add_float2((_Static_b10043c7cb9e49959f7b0da19855249e_Out_0_Float.xx), _Combine_46100a525fd10b89907d8a5cbf5059c7_RG_6_Vector2, _Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2);
        half _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float = Vector1_3A36DA35;
        half _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float = Vector1_71D12A3;
        float4 _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4;
        MagicFunction01_float(_Add_ac79c122684f88839e5b646f6e5888f3_Out_2_Vector2, _Property_2e1120721cae978b9ea3334f6a7ebeab_Out_0_Float, _Property_ff40dfb48308d0809f15b12670138ef1_Out_0_Float, _MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4);
        Bindings_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5;
        float4 _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4;
        SG_SmoothTriangleWave_24d4ccfd9f1314570b6d66e272e1620b_float(_MagicFunction01CustomFunction_b8b091e4304e908dbd7bd9ced62750a1_Output_1_Vector4, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5, _SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4);
        float3 _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3;
        MagicFunction02_float(_SmoothTriangleWave_7e35eeaab49f2e87b8eec5c188d6fef5_Output_1_Vector4, _MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3);
        half _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float = Vector1_74A19DBC;
        float _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float = Vector1_665407A7;
        float _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float = Vector1_1EF6B9C0;
        float _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float = Vector1_A1F46A31;
        float3 _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3;
        MagicFunction03_float(IN.WorldSpaceNormal, _Property_ca563a6e12254f80b2d0d1282350e7c5_Out_0_Float, _Property_9a0303f8ed69af83bc7a83201e01a181_Out_0_Float, _Property_f9e3cd58219ef68d98ccd204f9e97b3e_Out_0_Float, _Property_1de04befb0008983ae51ea104e617c0d_Out_0_Float, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3);
        float3 _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3;
        Unity_Multiply_float3_float3(_MagicFunction02CustomFunction_e33034922904478888beff7e2690e511_Output_1_Vector3, _MagicFunction03CustomFunction_c61d8d498f84198b88a09be002875bd2_Output_1_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3);
        float3 _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        Unity_Add_float3(_Multiply_26c88728b5cf5a80ad8dcd476c58fc25_Out_2_Vector3, _Multiply_646507598e68b38ebe20395a394a8a5c_Out_2_Vector3, _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3);
        Position_1 = _Add_334da037c5add789a99654f2aaee522c_Out_2_Vector3;
        }
        
        void Unity_Lerp_float(float A, float B, float T, out float Out)
        {
            Out = lerp(A, B, T);
        }
        
        void Unity_NormalStrength_float(float3 In, float Strength, out float3 Out)
        {
            Out = float3(In.rg * Strength, lerp(1, In.b, saturate(Strength)));
        }
        
        void Unity_Branch_float3(float Predicate, float3 True, float3 False, out float3 Out)
        {
            Out = Predicate ? True : False;
        }
        
        void Unity_FresnelEffect_float(float3 Normal, float3 ViewDir, float Power, out float Out)
        {
            Out = pow((1.0 - saturate(dot(normalize(Normal), normalize(ViewDir)))), Power);
        }
        
        // Custom interpolators pre vertex
        /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */
        
        // Graph Vertex
        struct VertexDescription
        {
            float3 Position;
            float3 Normal;
            float3 Tangent;
        };
        
        VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN)
        {
            VertexDescription description = (VertexDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Vector2_be042102856745459ca75791c8997837_Out_0_Vector2 = float2(float(0.1), float(0));
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float;
            Unity_GradientNoise_Deterministic_float((IN.TimeParameters.x.xx), float(0.2), _GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float;
            Unity_Remap_float(_GradientNoise_1f5d0136866446589fc599a909553cf0_Out_2_Float, float2 (0, 1), float2 (0.3, 1), _Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float2 _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2;
            Unity_Multiply_float2_float2(_Vector2_be042102856745459ca75791c8997837_Out_0_Vector2, (_Remap_3017f17c92dd4aff985951aba075de71_Out_3_Float.xx), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float = IN.VertexColor[0];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float = IN.VertexColor[1];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float = IN.VertexColor[2];
            float _Split_b7531d7f2e314f08b1f198648577a6f8_A_4_Float = IN.VertexColor[3];
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float;
            Unity_Multiply_float_float(_Split_b7531d7f2e314f08b1f198648577a6f8_G_2_Float, 0.5, _Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float;
            Unity_Saturate_float(_Multiply_451829a3d8ea4565b65fdecf1de07232_Out_2_Float, _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float;
            Unity_OneMinus_float(_Split_b7531d7f2e314f08b1f198648577a6f8_R_1_Float, _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            Bindings_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.WorldSpaceNormal = IN.WorldSpaceNormal;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.ObjectSpacePosition = IN.ObjectSpacePosition;
            _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba.TimeParameters = IN.TimeParameters;
            float3 _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            SG_VegetationDeformation_5567b9bee87bf495fabd3a75c781ba25_float(half(0.05), _Multiply_b81e1abf40c54e2abfdf40933039d60b_Out_2_Vector2, half(0.5), _Saturate_ba9678b375ec4b8ca940b08df08db51f_Out_1_Float, half(0.5), half(0.1), _OneMinus_bf8302e218cc40f1b5c80daf15903629_Out_1_Float, float(0.1), _Split_b7531d7f2e314f08b1f198648577a6f8_B_3_Float, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba, _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3);
            #endif
            description.Position = _VegetationDeformation_0d37e7d66b76493d8b4cc7dda6c1e9ba_Position_1_Vector3;
            description.Normal = IN.ObjectSpaceNormal;
            description.Tangent = IN.ObjectSpaceTangent;
            return description;
        }
        
        // Custom interpolators, pre surface
        #ifdef FEATURES_GRAPH_VERTEX
        Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input)
        {
        return output;
        }
        #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC
        #endif
        
        // Graph Pixel
        struct SurfaceDescription
        {
            float3 BaseColor;
            float3 Emission;
            float Alpha;
            float AlphaClipThreshold;
        };
        
        SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN)
        {
            SurfaceDescription surface = (SurfaceDescription)0;
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_BaseMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.tex, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.samplerstate, _Property_465f489b78904a8da87ce4427ffb31ed_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_R_4_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.r;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_G_5_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.g;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_B_6_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.b;
            float _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float = _SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_4f3471b6a8d041ebadb5c5296183d050_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_MaskMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_4f3471b6a8d041ebadb5c5296183d050_Out_0_Texture2D.tex, _Property_4f3471b6a8d041ebadb5c5296183d050_Out_0_Texture2D.samplerstate, _Property_4f3471b6a8d041ebadb5c5296183d050_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_914b9b0db3524122b31560b5247ea950_R_4_Float = _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4.r;
            float _SampleTexture2D_914b9b0db3524122b31560b5247ea950_G_5_Float = _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4.g;
            float _SampleTexture2D_914b9b0db3524122b31560b5247ea950_B_6_Float = _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4.b;
            float _SampleTexture2D_914b9b0db3524122b31560b5247ea950_A_7_Float = _SampleTexture2D_914b9b0db3524122b31560b5247ea950_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Split_a7c4ef0820984513b5564dd5f308bf55_R_1_Float = IN.VertexColor[0];
            float _Split_a7c4ef0820984513b5564dd5f308bf55_G_2_Float = IN.VertexColor[1];
            float _Split_a7c4ef0820984513b5564dd5f308bf55_B_3_Float = IN.VertexColor[2];
            float _Split_a7c4ef0820984513b5564dd5f308bf55_A_4_Float = IN.VertexColor[3];
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_f109f19d070b4f1e95dc29f5a0b29c98_Out_0_Float = _Vertex_Color_AO;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Lerp_c84b44c1d9094ee68de1cb96888eaa2b_Out_3_Float;
            Unity_Lerp_float(float(1), _Split_a7c4ef0820984513b5564dd5f308bf55_G_2_Float, _Property_f109f19d070b4f1e95dc29f5a0b29c98_Out_0_Float, _Lerp_c84b44c1d9094ee68de1cb96888eaa2b_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Multiply_b7fb8f4fd709415a9c525e5287978860_Out_2_Float;
            Unity_Multiply_float_float(_SampleTexture2D_914b9b0db3524122b31560b5247ea950_G_5_Float, _Lerp_c84b44c1d9094ee68de1cb96888eaa2b_Out_3_Float, _Multiply_b7fb8f4fd709415a9c525e5287978860_Out_2_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _IsFrontFace_a7358c783778400db0359723f12a3a85_Out_0_Boolean = max(0, IN.FaceSign.x);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_NormalMap);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.tex, _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.samplerstate, _Property_ddfb9d46585d43df8803c4aa51d1d72a_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.rgb = UnpackNormal(_SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4);
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_R_4_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.r;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_G_5_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.g;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_B_6_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.b;
            float _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_A_7_Float = _SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_903342e174b34297903a3355b6b6ca13_Out_0_Float = _NormalStrength;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3;
            Unity_NormalStrength_float((_SampleTexture2D_db664c86ea664ab8aacf5e9af5965a9d_RGBA_0_Vector4.xyz), _Property_903342e174b34297903a3355b6b6ca13_Out_0_Float, _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Float_4d4aa49678964e3fba9145b8c09543bd_Out_0_Float = float(-1);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3;
            Unity_Multiply_float3_float3(_NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3, (_Float_4d4aa49678964e3fba9145b8c09543bd_Out_0_Float.xxx), _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3;
            Unity_Branch_float3(_IsFrontFace_a7358c783778400db0359723f12a3a85_Out_0_Boolean, _NormalStrength_8bf68dea58044e31ae1e2faee99c4f5a_Out_2_Vector3, _Multiply_3244740ad8ee4de088bd4b9c3c6c7747_Out_2_Vector3, _Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Transform_86a03b8e2d6540c1b8863f7b5b554b87_Out_1_Vector3;
            {
                float3x3 tangentTransform = float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal);
                _Transform_86a03b8e2d6540c1b8863f7b5b554b87_Out_1_Vector3 = TransformTangentToWorldDir(_Branch_8efe9b7e77d24183811facf2d9b90427_Out_3_Vector3.xyz, tangentTransform, true).xyz;
            }
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _ScreenPosition_1bec0e7bef684b978e4c695ef103537b_Out_0_Vector4 = float4(IN.NDCPosition.xy, 0, 0);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _AdditionalLightSSSCustomFunction_f6523040cd4b400bb171bfed1c9c9fd1_contribution_2_Vector3;
            AdditionalLightSSS_float(IN.WorldSpacePosition, _Transform_86a03b8e2d6540c1b8863f7b5b554b87_Out_1_Vector3, (_ScreenPosition_1bec0e7bef684b978e4c695ef103537b_Out_0_Vector4.xy), _AdditionalLightSSSCustomFunction_f6523040cd4b400bb171bfed1c9c9fd1_contribution_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_729fe0dfa5fa48569eff06acab799419_Out_0_Float = _ScatteringIntensity;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_10a0a2f10cdd43cab2a2b532380b8392_Out_2_Vector3;
            Unity_Multiply_float3_float3(_AdditionalLightSSSCustomFunction_f6523040cd4b400bb171bfed1c9c9fd1_contribution_2_Vector3, (_Property_729fe0dfa5fa48569eff06acab799419_Out_0_Float.xxx), _Multiply_10a0a2f10cdd43cab2a2b532380b8392_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            UnityTexture2D _Property_9c68aff5f79c4b13a3bb636c224ea02d_Out_0_Texture2D = UnityBuildTexture2DStructNoScale(_ScatteringColor);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float4 _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4 = SAMPLE_TEXTURE2D(_Property_9c68aff5f79c4b13a3bb636c224ea02d_Out_0_Texture2D.tex, _Property_9c68aff5f79c4b13a3bb636c224ea02d_Out_0_Texture2D.samplerstate, _Property_9c68aff5f79c4b13a3bb636c224ea02d_Out_0_Texture2D.GetTransformedUV(IN.uv0.xy) );
            float _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_R_4_Float = _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.r;
            float _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_G_5_Float = _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.g;
            float _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_B_6_Float = _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.b;
            float _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_A_7_Float = _SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.a;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_bd72fc18d17f4d119db6f81048c2e6f2_Out_2_Vector3;
            Unity_Multiply_float3_float3(_Multiply_10a0a2f10cdd43cab2a2b532380b8392_Out_2_Vector3, (_SampleTexture2D_637a04ca85104f6c9dd2806635c17ca1_RGBA_0_Vector4.xyz), _Multiply_bd72fc18d17f4d119db6f81048c2e6f2_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _FresnelEffect_28ba1d3f0a7a42abbafc20bf115c122b_Out_3_Float;
            Unity_FresnelEffect_float(IN.WorldSpaceNormal, IN.WorldSpaceViewDirection, float(1), _FresnelEffect_28ba1d3f0a7a42abbafc20bf115c122b_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Property_dd0713d20f934f159c516efcae79d105_Out_0_Float = _FresnelDamping;
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float _Lerp_a91fb6c34617438bb75e8b1c4bb48740_Out_3_Float;
            Unity_Lerp_float(float(1), _FresnelEffect_28ba1d3f0a7a42abbafc20bf115c122b_Out_3_Float, _Property_dd0713d20f934f159c516efcae79d105_Out_0_Float, _Lerp_a91fb6c34617438bb75e8b1c4bb48740_Out_3_Float);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_83b4203720a847dd8b6d5cab010f4340_Out_2_Vector3;
            Unity_Multiply_float3_float3(_Multiply_bd72fc18d17f4d119db6f81048c2e6f2_Out_2_Vector3, (_Lerp_a91fb6c34617438bb75e8b1c4bb48740_Out_3_Float.xxx), _Multiply_83b4203720a847dd8b6d5cab010f4340_Out_2_Vector3);
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            #if defined(_ENABLE_SSS)
            float3 _Enable_af8cad7a16854088827adcb44e00760b_Out_0_Vector3 = _Multiply_83b4203720a847dd8b6d5cab010f4340_Out_2_Vector3;
            #else
            float3 _Enable_af8cad7a16854088827adcb44e00760b_Out_0_Vector3 = float3(0, 0, 0);
            #endif
            #endif
            #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
            float3 _Multiply_fdce91d2e90547b3aa6f3da87c21d7ef_Out_2_Vector3;
            Unity_Multiply_float3_float3((_Multiply_b7fb8f4fd709415a9c525e5287978860_Out_2_Float.xxx), _Enable_af8cad7a16854088827adcb44e00760b_Out_0_Vector3, _Multiply_fdce91d2e90547b3aa6f3da87c21d7ef_Out_2_Vector3);
            #endif
            surface.BaseColor = (_SampleTexture2D_5f81635c247d480a9f68561963529de7_RGBA_0_Vector4.xyz);
            surface.Emission = _Multiply_fdce91d2e90547b3aa6f3da87c21d7ef_Out_2_Vector3;
            surface.Alpha = _SampleTexture2D_5f81635c247d480a9f68561963529de7_A_7_Float;
            surface.AlphaClipThreshold = float(0.5);
            return surface;
        }
        
        // --------------------------------------------------
        // Build Graph Inputs
        #ifdef HAVE_VFX_MODIFICATION
        #define VFX_SRP_ATTRIBUTES Attributes
        #define VFX_SRP_VARYINGS Varyings
        #define VFX_SRP_SURFACE_INPUTS SurfaceDescriptionInputs
        #endif
        VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input)
        {
            VertexDescriptionInputs output;
            ZERO_INITIALIZE(VertexDescriptionInputs, output);
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceNormal =                          input.normalOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceNormal =                           TransformObjectToWorldNormal(input.normalOS);
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpaceTangent =                         input.tangentOS.xyz;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.ObjectSpacePosition =                        input.positionOS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.VertexColor =                                input.color;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.TimeParameters =                             _TimeParameters.xyz;
        #endif
        
        
            return output;
        }
        SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input)
        {
            SurfaceDescriptionInputs output;
            ZERO_INITIALIZE(SurfaceDescriptionInputs, output);
        
        #ifdef HAVE_VFX_MODIFICATION
        #if VFX_USE_GRAPH_VALUES
            uint instanceActiveIndex = asuint(UNITY_ACCESS_INSTANCED_PROP(PerInstance, _InstanceActiveIndex));
            /* WARNING: $splice Could not find named fragment 'VFXLoadGraphValues' */
        #endif
            /* WARNING: $splice Could not find named fragment 'VFXSetFragInputs' */
        
        #endif
        
            
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // must use interpolated tangent, bitangent and normal before they are normalized in the pixel shader.
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        float3 unnormalizedNormalWS = input.normalWS;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        const float renormFactor = 1.0 / length(unnormalizedNormalWS);
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // use bitangent on the fly like in hdrp
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // IMPORTANT! If we ever support Flip on double sided materials ensure bitangent and tangent are NOT flipped.
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        float crossSign = (input.tangentWS.w > 0.0 ? 1.0 : -1.0)* GetOddNegativeScale();
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        float3 bitang = crossSign * cross(input.normalWS.xyz, input.tangentWS.xyz);
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceNormal = renormFactor * input.normalWS.xyz;      // we want a unit length Normal Vector node in shader graph
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // to pr               eserve mikktspace compliance we use same scale renormFactor as was used on the normal.
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        // This                is explained in section 2.2 in "surface gradient based bump mapping framework"
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceTangent = renormFactor * input.tangentWS.xyz;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceBiTangent = renormFactor * bitang;
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpaceViewDirection = GetWorldSpaceNormalizeViewDir(input.positionWS);
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.WorldSpacePosition = input.positionWS;
        #endif
        
        
            #if UNITY_UV_STARTS_AT_TOP
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.PixelPosition = float2(input.positionCS.x, (_ProjectionParams.x < 0) ? (_ScaledScreenParams.y - input.positionCS.y) : input.positionCS.y);
        #endif
        
            #else
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.PixelPosition = float2(input.positionCS.x, (_ProjectionParams.x > 0) ? (_ScaledScreenParams.y - input.positionCS.y) : input.positionCS.y);
        #endif
        
            #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.NDCPosition = output.PixelPosition.xy / _ScaledScreenParams.xy;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.NDCPosition.y = 1.0f - output.NDCPosition.y;
        #endif
        
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.uv0 = input.texCoord0;
        #endif
        
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        output.VertexColor = input.color;
        #endif
        
        #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE)
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign =                    IS_FRONT_VFACE(input.cullFace, true, false);
        #else
        #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        #endif
        #if defined(KEYWORD_PERMUTATION_0) || defined(KEYWORD_PERMUTATION_1)
        BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        #endif
        
        #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN
        
                return output;
        }
        
        // --------------------------------------------------
        // Main
        
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/Varyings.hlsl"
        #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/LightingMetaPass.hlsl"
        
        // --------------------------------------------------
        // Visual Effect Vertex Invocations
        #ifdef HAVE_VFX_MODIFICATION
        #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/VisualEffectVertex.hlsl"
        #endif
        
        ENDHLSL
        }
         
         
    }
    CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI"
    CustomEditorForRenderPipeline "UnityEditor.ShaderGraphLitGUI" "UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset"
    FallBack "Hidden/Shader Graph/FallbackError"
}